Matlab:使用avifile,addframe,getframe;生成的avi被扭曲

问题描述

| 我正在训练一种机器学习算法,并且想制作一个avi来可视化重量随时间的变化。我把类似的东西放在一起:
aviobj = avifile( \'weights.avi\' );
for jj = 1:whatever
  % do some training
  imagesc( ... ); % where \'...\' is stuff to reshape the weight matrix
  aviobj = addframe( aviobj,getframe );
end;
aviobj = close( aviobj );
implay( \'weights.avi\' );
问题是,框架最终看起来像这样: 数字不应该具有该方向。我在matlab中生成的任何avi都会发生这种情况。 有什么建议么? -布莱恩     

解决方法

终于有时间回到这一点。问题出在轴上。当使用
image
imagesc
之类的东西时,它会在图像的底部和左侧附加一条黑色边框。当使用
getframe
时,它仅获取绘制的图像数据,无黑线。但是,帧本身略大于图像数据。 解决方法如下:
aviobj = avifile( \'weights.avi\' );
fig = figure;
for jj = 1:whatever
  % do some training
  imagesc( ... ); % where \'...\' is stuff to reshape the weight matrix
  axis off;
  aviobj = addframe( aviobj,getframe( fig ) );
end;
aviobj = close( aviobj );
implay( \'weights.avi\' );
设定
axis off
即可解决。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...