Matlab中图片保存的5种方法

matlab的绘图和可视化能力是不用多说的,可以说在业内是家喻户晓的。
Matlab提供了丰富的绘图函数,比如ez**系类的简易绘图函数,surf、mesh系类的数值绘图函数等几十个。另外其他专业工具箱也提供了专业绘图函数,这些值得大家深入学习好久。

今天我只是讨论下如何保存这些由Matlab绘制出来的图像呢?当然借助第三方截图软件,就算了!

1、使用imwrite 函数

如图像是img,则可以使用 imwrite(img,‘result.jpg‘); 这种方法保存图像大小和显示的大小事一样的。下面几种方法大小基本不一样(sg我测试的)

2、直接另存为
在figure中使用菜单file——>saveas——>选择保存形式(fig,eps,jpeg,gif,png,bmp等),这个的缺点是另存为的图像清晰度有很大的牺牲

3、复制到剪贴板
在figure中使用菜单edit——>copy figure——>此时图像就复制到剪贴板了,我们可以借助其他软件(比如:绘图板)保存为需要的图片

4、saveas命令格式
Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】

    1. % saveas(figure_handle,filename,fileformat)
    2. plot(1:10);
    3. saveas(gcf,‘myfig.jpg’)         (这种保存图像大小和源图像发生较大差别,为什么呢?就是因为句柄不一样的缘故。可以尝试
    4. set (gcf,‘Position‘,[500,500,500,500], ‘color‘,‘w‘) %大小设置。 sg我亲自测试5、print函数
      print函数原本不是用来进行图像保存了,而是操作打印机的,但是这里我们可以借用下

      1. % print(figure_handle,fileformat,filename)
      2. x=-pi:2*pi/300:pi;
      3. y=sin(x);
      4. plot(x,y);
      5. %Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对
      6. print(gcf,‘-dpng‘,‘abc.png‘)   %保存为png格式的图片到当前路径

      复制代码

      另外有网友向我反映,有时我们只有一个Matlab图像的fig文件,但没有该图像的相关坐标数据,那我们如何获取fig图像的数据呢,这个其实比较好办

      1、将那个fig文件保存到Matlab的搜索路径下,双击打开它
      2、在Matlab的command中输入如下内容

      1. h=get(gcf,‘chidren‘)
      2. data=get(h,{‘xdata‘,‘ydata‘,‘zdat a‘})
      3. %此时图形中所有图像的三维数据x,y,z将会以结构体的形式保存到data变量中了
        1. from: http://blog.csdn.net/lsg32/article/details/8111956
时间: 2025-01-18 07:10:09

Matlab中图片保存的5种方法的相关文章

批量改变文件夹和子文件夹中图片格式的两种方法

生活中,我们通常会遇到这种问题:一个文件夹内部有多个子文件夹,每个文件夹内部有很多图片,我们想改变这些图片的格式. 例如.png格式图片支持背景透明,但我们想把它变成背景不透明的.jpg图片.又比如.bmp格式是非压缩图片,我们想把它转换为无损压缩的.png图片以节省存储空间. 如果图片数量很少,很明显我们可以通过Windows自带的画图工具或者其他看图软件通过“另存为”一张张地转换图片格式.但是如果图片很多,怎么办? 这个问题其实有两个关键点: ① 要求批量处理. ② 文件夹中还有子文件夹.

sklearn 中模型保存的两种方法

一. sklearn中提供了高效的模型持久化模块joblib,将模型保存至硬盘. from sklearn.externals import joblib #lr是一个LogisticRegression模型 joblib.dump(lr, 'lr.model') lr = joblib.load('lr.model') 二.pickle >>> from sklearn import svm >>> from sklearn import datasets >&

Linux中生成密钥的两种方法

Linux中生成密钥的两种方法 SSH服务支持一种安全认证机制,即密钥认证.所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey), 任何人都可以看到其内容,用于加密:另一个称为密钥(privatekey),只有拥有者才能看到,用于解密.通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难. ssh的密钥认证就是使用了这一特性.服务器和客户端都各自拥有自己的公钥和密钥.如何使用密钥认证登录linux服务器呢? 在使用密钥认证远程登入linux之前,我们

IOS开发中数据持久化的几种方法--NSUserDefaults

IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefault是最简单直接的一个办法: 1)保存数据: 1 // 实例化一个NSUserDefaults单例对象 2 NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; 3 // 把一个数组array保存在key为allContact的键值

ASP.NET下载远程图片保存到本地的方法、保存抓取远程图片

ASP.NET下载远程图片保存到本地的方法.保存抓取远程图片 2012-05-16 11:25:51     我来说两句      收藏    我要投稿 以下介绍两种方法:1.利用WebRequest,WebResponse 类WebRequest wreq=WebRequest.Create("http://up.2cto.com/2012/0516/20120516112717995.gif");    HttpWebResponse wresp=(HttpWebResponse)

android中bitmap压缩的几种方法的解读

最近在研究微信的sdk,在缩略图这遇到了一点问题. 微信的缩略图要求是不大于32k,这就需要对我的图片进行压缩.试了几种方法,一一道来. 1.质量压缩法: 代码如下 ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos); int options = 100; while ( baos.toByteArray().length /

在移动设备上放大图片查看图片细节的俩种方法

类似淘宝京东上的产品图,我们可以放大来看产品的具体细节.那么,在移动设备上,基于Web浏览器的这种效果又是如何实现的呢? 一.使用touchEvent来实现,关于touchEvent的一些基本知识,可以阅读文章--多点触摸网络开发 1.页面代码 <div id="warpper" class="warpper"> <div class="clearfix"></div> <div id="con

C#中datatable导出excel(三种方法)

方法一:(拷贝直接可以使用,适合大批量资料, 上万笔)Microsoft.Office.Interop.Excel.Application appexcel = new Microsoft.Office.Interop.Excel.Application();SaveFileDialog savefiledialog = new SaveFileDialog();System.Reflection.Missing miss = System.Reflection.Missing.Value;ap

a 中调用js的几种方法

我们常用的在a标签中有点击事件:1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放.W3C标准不推荐在href里面执行javascript语句 2. a href="javascript:void(0);"