我正在用3个子图在MATLAB中制作电影。当我将图形保存为png时,它看起来不错,但是在视频模式下保存时却很难看。如何改善视频图像。特别是删除多余的空白区域。也有可能看到仰角360度旋转。我正在使用Linux机器。
这里是png中的图像在视频模式下保存的图像相同MATLAB代码
v = VideoWriter('myFile.avi');
v.FrameRate = 1;
open(v);
h1=figure;
set(gcf, 'PaperSize', [15 5]);
set(gcf, 'PaperPosition', [0 0 15 5]);
d=linspace(0,360,15); % azimuth angle
first=length(d);
for j=1:first
viewScene(j,:)=[-d(j),1];
end
d=linspace(-90,90,10); % elevation angle
for j=1:length(d)
viewScene(j+first,:)=[-38,d(j)];
end
final=first+length(d);
for t=1:final
for i=1:3
subplot(1,3,i)
plot3()
hold on
plot3()
axis vis3d;
view(viewScene(t,:))
set(findobj(gcf,'type','axes'),'visible','off');
end
frame=getframe(gcf);
writeVideo(v,frame)
hold off
end
close(v);
默认情况下,VideoWriter创建一个Motion JPEG-AVI文件。您可以修改质量参数以获得更好质量的图像。 Quality = 100
可获得最佳效果。
[另一个选择是编写未压缩的AVI,它将按原样写入数据而没有任何损坏,但会导致文件变大。您也可以尝试使用RGB2IND函数将图像转换为索引图像,并编写一个索引AVI,该索引也是无损的,其大小约为未压缩AVI的1/3。
您也可以尝试MPEG-4。
事实是,MJPEG和MPEG-4用于压缩自然风景图像,而高频信息即边缘和过渡丢失了。您的图像不是自然风光,因此是可以预期的。