4 Mar 2010

matlab保存图像的几个问题



figure最大化
方法一:
h = figure;
set(gcf,'outerposition',get(0,'screensize'));
方法二(by eight):h = figure;
set(gcf,'units','normalized','position',[0,0,1,1]);


============================
保存图像为png
getframe获得的是一个架构struct类型的数据,

其中cdata子域的内容才可以用imwrite内容保存,用F.cdata表示

getframe(gcf) 即get current figure,获得窗口内图像,包含legend、title以及label。如果不添加gcf,默认为gca(get current axis)。

imwrite 可以保存jpg、png等格式图像,gif是7.0添加的,但是好像没办法保存为动画,只能保存第一帧。

与在图像界面直接利用复制,或用file>save as...保存不同的是,imwrite的背景色为窗口实际颜色,默认为灰色(RGB表示为[.7 .7 .7]),若想保留白色背景图,需添加例子中的set gcf color命令。

=====================================================

保存多个图像时,顺序命名图像文件名称需用到 num2str 或 sprintf命令

num2str(kk) 将数字kk保存为字符

sprintf('格式',kk)将kk保存为需要格式的字符,尤其是图像多于10个名称需要前面补0时很好用

Note:保存多个图像时不要乱动电脑、切换窗口,getframe保存当前图像所在位置的屏幕图像,相当于截屏。如果激活其他窗口,可就没法保证截的啥了。

例:(使用ctrl+t取消注释符后运行)

============================

No comments :

Post a Comment