saveas中参数gcf的理解

Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存。saveas的格式为:
saveas(gca, filename, fileformat),其中的三个参数:
(1)gca:图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3;也可以直接用gcf获取当前窗口句柄。

(2)filename:单引号字符串,指定文件名
(3)fileformat:单引号字符串,指定存储格式

注意:gcf是获取的当前的窗口句柄,假如说你显示3~4个图像,没有加上

figure (1);
hold on;
figure (2);
hold on;
figure (3);
hold on;

则会出现下列情况,即保存的永远是最后一个显示的图像。
在这里插入图片描述
如上图:I_1和I_4均为同一图像,没有达成我们的目的。

错误代码:


% 1. 看一下变量的类型和大小
% 
% 2. 用imshow命令显示图像,并截图下来提交作业;用saveas命令保存图像;
% 
% 3. 利用imresize命令将图像长宽分别缩小至1/4,以及扩大至4倍,保存图像;
% 
% 4. imbinarize(I),将灰度的lena图二值化,保存图像;
% 


%Q1:
I = imread('./lena_gray.jpg');
I3 = imread('./lena.bmp');
%Q2:
imshow(I);

imshow(I3);

%Q3:
I_1 = imresize(I3,0.25);
saveas(gcf,['image\','I_1.bmp']);
I_4=imresize(I3,4);
saveas(gcf,['image\','I_4.bmp']);

%Q4:
BW=imbinarize(I);
saveas(gcf,['image\','BW']);
%imshow(BW);
%Q5:
    

调整之后的代码:


% 1. 看一下变量的类型和大小
% 
% 2. 用imshow命令显示图像,并截图下来提交作业;用saveas命令保存图像;
% 
% 3. 利用imresize命令将图像长宽分别缩小至1/4,以及扩大至4倍,保存图像;
% 
% 4. imbinarize(I),将灰度的lena图二值化,保存图像;
% 


%Q1:
I = imread('./lena_gray.jpg');
I3 = imread('./lena.bmp');
%Q2:
figure(3);
imshow(I);
hold on;
imshow(I3);

%Q3:
I_1 = imresize(I3,0.25);
figure(1);
imshow(I_1);
hold on ;
saveas(gcf,['image\','I_1.jpg']);

I_4=imresize(I3,4);
figure(2);
imshow(I_4)
hold on;
saveas(gcf,['image\','I_4.jpg']);

%Q4:
BW=imbinarize(I);

figure(4);
imshow(BW);
hold on;
saveas(gcf,['image\','BW.jpg']);
%Q5:
    

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃胡萝卜的代码兔

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值