matlab getframe()


F = getframe(h,rect) specifies

   a rectangular area from which to copy the pixmap. rect is relative to the lower left corner of the figure or axes h,in pixel units. rect is a four-element vector in the form [left bottom width height], where width and height define the dimensions of the rectangle.

   本函数是要从图形对象中截取一块出来。其中h是图像句柄,rect是一个四元素向量,代表[a b c d],其中a表示截取区域到图像左端的像素数,b表示截取区域到图像底端的像素数,c表示截取区域水平像素数,d表示截取区域垂直向像素数。

   得到的F是一个结构体(struct),包含两个元素:cdatacolormap,其中cdata是截取区域的数据,是一个三维数组,其中第三维的长度是3,即截取到的是区域中RGB的值。colormap是调色板,这个没啥意思。

例如:

x=0:pi/100:2*pi;

y=sin(x);

plot(x,y)

set(gcf,'color',[1 1 1]) %设置背景色为白色

title('测试图像保存')

F=getframe(gcf); % 获取整个窗口内容的图像

F1=getframe;     % 获取坐标轴为界的图像

imwrite(F.cdata,'test1.png')

imwrite(F1.cdata,'test2.png')

getframe获得的是一个架构struct类型的数据,

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

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

imwrite 可以保存jpgpng等格式图像,gif7.0添加的,但是好像没办法保存为动画,只能保存第一帧。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值