matlab GUI保存axes(坐标轴)上的图像

1.默认方式

matlab GUI默认菜单的保存图像默认为保持全部GUI,包括使用" 菜单->编辑->复制图形"。

2 保存可见区域

2.1 代码

[FileName,PathName] = uiputfile({‘*.jpg‘,‘JPEG(*.jpg)‘;...
                                             ‘*.bmp‘,‘Bitmap(*.bmp)‘;...
                                             ‘*.gif‘,‘GIF(*.gif)‘;...
                                             ‘*.*‘,  ‘All Files (*.*)‘},...
                                             ‘Save Picture‘,‘Untitled‘);
if FileName==0
      disp(‘保存失败‘);
      return;
else
      h=getframe(picture);%picture是GUI界面绘图的坐标系句柄
      imwrite(h.cdata,[PathName,FileName]);
end           

2.2 说明

函数getframe()是为了获取坐标轴中的一帧图像,其返回的对象中有cdata和colormap两个成员。

2.3 效果

3 保存带坐标轴的区域

3.1代码

new_f_handle=figure(‘visible‘,‘off‘);
new_axes=copyobj(picture,new_f_handle); %picture是GUI界面绘图的坐标系句柄
set(new_axes,‘units‘,‘default‘,‘position‘,‘default‘);
[filename,pathname,fileindex]=uiputfile({‘*.jpg‘;‘*.bmp‘},‘save picture as‘);
if ~filename
     return
else
      file=strcat(pathname,filename);
      switch fileindex %根据不同的选择保存为不同的类型
      case 1
                  print(new_f_handle,‘-djpeg‘,file);
      case 2
                  print(new_f_handle,‘-dbmp‘,file);
      end
end
delete(new_f_handle);

3.2 说明

实际上是新建一个新的坐标图形,将GUI复制到新的图像上,输出新的图像,最后删除新建的图形句柄。

3.3 效果

参考文献

原文地址:https://www.cnblogs.com/jingshikongming/p/8971922.html

时间: 2024-10-05 04:41:05

matlab GUI保存axes(坐标轴)上的图像的相关文章

MATLAB GUI 程序设计中将axes保存为矢量图的方法

MATLAB进行GUI程序设计时,一个figure中通常包含多个axes控件. 保存矢量图的常用指令saveas和print只能以figure为单位保存图片,而不能将figure中的某一个axes单独保存. 而getframe+imwrite的方法虽然可以保存axes,但只能保存为位图,不能保存为矢量图,必定造成图像细节信息丢失. 下面给出一种解决方案. 创建一个新的.不可见的figure和axes,将要保存的axes内容复制至新的axes中,并保存新的figure. 由于新的figure中只有

matlab GUI使用subplot画图后如何清空坐标轴

matlab GUI使用subplot画图后如何清空坐标轴: 假设有四个子坐标,分别为h1,h2,h3,h4 h = 0; if ishandle(h1) delete(h1); h = 1; end if ishandle(h2) delete(h2); h = 1; end if ishandle(h3) delete(h3); h = 1; end if ishandle(h4) delete(h4); h1 = 1; end if h axes('parent',handles.uipa

Matlab GUI界面

做SVD的时候,看学姐的demo,用到了matlab的GUI,感兴趣就自己学了一下: 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件     2.  使用 GUIDE 快速的生成GUI界面 显然第二种可视化编辑方法算更适合写大型程序.一:创建GUI1.在 .m文件中动态添加 例如 h_main=figure(‘name’,‘a demo of gui design’,‘menubar’,‘none’,… 'numbertitle','of

MATLAB GUI界面总结

创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件 2.  使用 GUIDE 快速的生成GUI界面 显然第二种可视化编辑方法算更适合写大型程序. 一:创建GUI 1.在 .m文件中动态添加 例如 h_main=figure('name','a demo of gui design','menubar','none',- 'numbertitle','off','position',[100 100 300 100]); h_edit=uicontrol('styl

matlab GUI界面编程总结

去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件     2.  使用 GUIDE 快速的生成GUI界面 显然第二种可视化编辑方法算更适合写大型程序.一:创建GUI1.在 .m文件中动态添加 例如 h_main=figure(‘name’,‘a demo of gui design

[学习一个] Matlab GUI 学习笔记 Ⅰ

Matlab GUI 学习笔记 Ⅰ 1. Foreword Matlab 是严格意义上的编程语言吗?曾经有人告诉我他是通过 Matlab 学会了面对对象编程,我是不信的,但这依然不妨碍它在特殊领域的强大功能.因为选修了这1个学分的 Matlab GUI 设计,亦有人表达了对Previous Matlab Blog的一些情绪,便写上一些 Matlab GUI 编程学习的心得. 标题虽为Matlab GUI 学习笔记 Ⅰ,亦可成为称为图像处理技术应用实践 - 课程设计 1 指北. 本文所用环境为 M

MATLAB axis和axes的区别

axis中文为“轴”之意,在matlab中用于控制坐标轴的范围和样式(颜色等). axis([XMIN XMAX YMIN YMAX]) 设置当前所绘图像的x轴和y轴的范围.axis([XMIN XMAX YMIN YMAX ZMIN ZMAX]) 设置当前所绘图像的x轴.y轴和z轴的范围. 例子: >> x = [1,2,3,4,5];>> y = [2,3,4,5,6];>> plot(x,y,'o') >> axis([0,5,0,6]); 得到图像

matlab gui基础

1.从最简单的开始      编程最基本的目的就是--我执行一个操作,程序做出一个反应.       "一个操作"包括:点击鼠标,拖动滑块,填写数据,选择选项-- "做出一个反应"包括:计算一些东西,然后储存在哪里,或者贴个图出来,或者显示在哪里----------------------------------------------------------------------------------------------------------------

Matlab——GUI初涉

Matlab——GUI初涉 MATLAB GUI教学视频0:GUI中的基本操作—在线播放—优酷网,视频高清在线观看http://v.youku.com/v_show/id_XMjM2Mjk0MjM2.html?firsttime=200 —————————————————————————————————————————————————————————————————————— 在看完这个视频后想到一个问题 在一个按键的回调函数中实现的语句,能否放在在其他按键回调函数中一样实现? (可以,但是注意