最近看了一些用matlab对图形图片进行保存的帖子和资源,关于图像保存的方法给大家分享一下这些方法是大家所使用方法的一个总结.

如今常用的方法有三种printf,imwrite,saveas下面分别介绍一下:
imwrite
imwrite将图像数据写成图像文件,一般用于图像处理,当我们使用imshow将一副图像使显示在坐标系上时,我们可以使用如下方式保存图像

   I=getimage(gcf); % 获取坐标系中的图像文件数据
   imwrite(I,'myphoto.jpg')%保存图像为文件
同时可以使用下面的形式保存图片数据,把图片保存到指定文件夹,并对文件名进行编号
   f=getframe(gcf);
   imwrite(f.cdata,['C:\Users\shitao\Desktop\s4\',int2str(i),'.jpg']);
这个函数在视频分帧时,我经常使用,相对saveas的保存速度,个人感觉效率比较高,下面举个例子

clc;close all;clear all;
Img=imread('1.jpg');
if ndims(Img)==3
I=rgb2gray(Img);
else
I=Img;
end
I=im2bw(I,graythresh(I));
[m,n]=size(I);
imshow(I);title('binary image');
txt=get(gca,'Title');
set(txt,'fontsize',16);
L=bwlabel(I);
stats=regionprops(L,'all');
set(gcf,'color','w');
set(gca,'units','pixels','Visible','off');
q=get(gca,'position');
q(1)=0;%设置左边距离值为零
q(2)=0;%设置右边距离值为零
set(gca,'position',q);
for i=1:length(stats)
hold on;
rectangle('position',stats(i).BoundingBox,'edgecolor','y','linewidth',2);
temp = stats(i).Centroid;
plot(temp(1),temp(2),'r.');
drawnow;
end
frame=getframe(gcf,[0,0,n,m]);
im=frame2im(frame);
imwrite(im,'a.jpg','jpg');%可以修改保存的格式

  

 

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

 % saveas(figure_handle,filename,fileformat)
plot(:);
saveas(gcf,‘myfig.jpg’)
复制代码

它有三种书写方式
saveas(gcf,['D:\保存的数据文件\方法1.png']) 
saveas(gcf,['D:\保存的数据文件\方法2','.png']) 
saveas(gcf,['D:\保存的数据文件\','方法3','.png'])

用saveas命令保存图片。
Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】。  
saveas的三个参数:  
(1)图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3。 
(2)文件名。  
(3)单引号字符串,指定存储格式。 
例: 
% saveas(figure_handle,filename,fileformat) plot(1:10); 
>>saveas(gcf,['D:\保存的数据文件\方法1.png'])
>> saveas(gcf,['D:\保存的数据文件\方法2','.png'])
>> saveas(gcf,['D:\保存的数据文件\','方法3','.png'])把图片保存到指定目录并编号

saveas(gcf,['C:\Users\shitao\Desktop\s3\',int2str(i),'.jpg']);

  mov=aviread('C:\Users\shitao\Desktop\s5\2.avi');%读入视频
Vframes=size(mov,);%读取视频的帧数
figure
for i=:Vframes
% strtemp=strcat('C:\Users\shitao\Desktop\s2\',int2str(i),'.','jpg');%将每帧转成.jpg的图片
I=mov(i).cdata;
imshow(I);
%此处添加图像处理内容,如对图像画框,画线等操作
saveas(gcf,['C:\Users\shitao\Desktop\s2\',int2str(i),'.jpg']);
%imwrite(mov(i).cdata(:,:,:),strtemp); %把图像写入磁盘
end

saveas与imwrite的区别

saveas(handle,['目录','文件名'])  
如果只有一幅图,handle设为gcf
如果有多副,handle需单独设置
imwrite(image_data,['directory','filename'])
需要与getframe连用
两个命令都可以用来保存图像,区别在于
1、背景色:saveas保存的图像 背景色自动设置为白色,imwrite保存图像为所见即所得
2、图像大小: saveas无视你设置的图像大小,按默认保存,imwrite保存所见即所得

 contrast example:在当前目录下image文件夹下找到两个图像,对比一下
clear
clc
x=:pi/:*pi;
y=sin(x);
h=plot(x,y); % h为plot线的句柄handle
set(gcf,'position',[,,,])
% 将图像设置为距屏幕左下角 [,像素
% 图像大小设置为400*600像素
set(gcf,'color',[,,]) % 背景色设置为白色
mkdir image
% 在当前文件夹下新建image文件夹,如果已存在会warning,不影响运行
% ========================
saveas(gcf,['image','test1.jpg'])
% ========================
f=getframe(gcf);
imwrite(f.cdata,['image','test2.jpg'])

复制代码

printf

用法:print(图形句柄,存储格式,文件名);

  • 图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.用gcf可以获取当前窗口句柄。
  • 指定存储格式。常用的有:
    • png格式:‚-dpng‘ (推荐这一种,与bmp格式一样清晰,文件也不大)
    • jpeg: ‚-djpeg‘(文件小,较清晰)
    • tiff: ‚-dtiff‘
    • bmp: ‚-dbitmap‘(清晰,文件极大)
    • gif: ‚-dgif‘(文件小但不清晰)
例如
 <font color="#000000" size="">% print(figure_handle,fileformat,filename)
x=-pi:*pi/:pi;
y=sin(x);
plot(x,y);
%Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对
print(gcf,'-dpng','abc.png') %保存为png格式的图片到当前路径</font>


注意:print函数必须紧跟在plot函数之后使用。

【matlab】用matlab 保存带标记图像、图片的方法总结的更多相关文章

  1. PHP《将画布(canvas)图像保存成本地图片的方法》

    用PHP将网页上的Canvas图像保存到服务器上的方法 2014年6月27日 歪脖骇客 发表回复 8 在几年前HTML5还没有流行的时候,我们的项目经理曾经向我提出这样一个需求:让项目评审专家们在评审 ...

  2. uniapp微信小程序保存base64格式图片的方法

    uniapp保存base64格式图片的方法首先第一要先获取用户的权限 saveAlbum(){//获取权限保存相册 uni.getSetting({//获取用户的当前设置 success:(res)= ...

  3. Matlab将矩阵保存为图像

    imwrite(image,'image.jpg'); image为矩阵的内容 image.jpg为要保存的图像的名字

  4. 转载:将画布(canvas)图像保存成本地图片的方法

    之前我曾介绍过如何将HTML5画布(canvas)内容转变成图片形式,方法十分简单.但后来我发现只将canvas内容转变成图片输出还不够,如何能将转变后的图片保存到本地呢? 其实,这个方法也是非常简单 ...

  5. Word中截取部分内容并保存为jpg图片的方法

    private void button1_Click(object sender, EventArgs e) { var appWord = new Microsoft.Office.Interop. ...

  6. [转]RGB数据保存为BMP图片

    转自:http://blog.csdn.net/yixianfeng41/article/details/52591585 一.BMP文件由文件头.位图信息头.颜色信息和图形数据四部分组成. 1.BM ...

  7. matlab中如何将视频保存成图像

    利用MATLAB将视频的每一帧保存成一幅图像,并自动命名.本文方法简单,容易学习. 首先,读入视频.代码如下: mov = VideoReader('xxxxxx.avi'); % 将xxxxxx.a ...

  8. matlab保存画框图像去白边

    在matlab图像处理中,为了标识出图像的目标区域来,需要利用plot函数或者rectangle函数,这样标识目标后,就保存图像. 一般saves保存的图像存在白边,可以采用imwrite对图像进行保 ...

  9. MATLAB实例:将批量的图片保存为.mat文件

    MATLAB实例:将批量的图片保存为.mat文件 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 一.彩色图片 图片数据:horse.rar 1. MA ...

随机推荐

  1. [Effective JavaScript 笔记]第68条:使用promise模式清洁异步逻辑

    构建异步API的一种流行的替代方式是使用promise(有时也被称为deferred或future)模式.已经在本章讨论过的异步API使用回调函数作为参数. downloadAsync('file.t ...

  2. 扩大Tomcat内存

    在Eclipse里选:Window->Preference->Installed JREs->Edit(选中jre),在Default VM Arguments里输入-Xms256m ...

  3. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  4. CSS3 笔记一(Rounded Corners/Border Images/Backgrounds)

    CSS3 Rounded Corners The border-radius property is a shorthand property for setting the four border- ...

  5. OS X 下iso刻录U盘

    1. 查看盘 $diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER : GUID_partition_scheme *320.1 GB disk ...

  6. AtCoder Beginner Contest 050 ABC题

    A - Addition and Subtraction Easy Time limit : 2sec / Memory limit : 256MB Score : 100 points Proble ...

  7. Android中插件开发篇之----应用换肤原理解析

    一.前言 今天又到周末了,感觉时间过的很快呀.又要写blog了.那么今天就来看看应用的换肤原理解析.在之前的一篇博客中我说道了Android中的插件开发篇的基础:类加载器的相关知识.没看过的同学可以转 ...

  8. winform 传值,构造函数等

    窗体转换 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form1 f ...

  9. iphone 3gs 美版,6.1.3+降基带+越狱+解锁。成功分享(转)

    本人参照这个帖子成功把一个白苹果的机器救活了 2014年1月26日 13点 转自:http://bbs.app111.com/thread-510632-1-1.html 时间:2013年5月31日  ...

  10. oracle物化视图

    物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询. 这样对整 ...