MATLAB中保存图片的方法

合集下载

Matlab---绘图中坐标系显示设置

Matlab---绘图中坐标系显示设置

Matlab---绘图中坐标系显⽰设置Matlab绘图---坐标系显⽰设置【@wp20180507-20180511(week 5)】⽬录:⼀、设置坐标范围⼆、修改坐标轴显⽰的刻度、密度、lable⽂字、位置等三、Matlab绘制出来的图像进⾏保存正⽂:⼀、设置坐标范围1) 函数axis():axis进⾏设置(对当前坐标轴进⾏设置)如果是⼆维:axis([xmin xmax ymin ymax]) 设置x-y坐标指定的区间范围。

xmin是x最⼩xmax是x最⼤,ymin,ymax分别是y最⼩,y最⼤⽐如,要改编x坐标axis([1 120000 -inf inf])如果改y坐标axis([ -inf inf 1 120000])当然,可以两个都改 -inf inf是正负⽆穷⼤如果是三维:axis([xmin xmax ymin ymax zmin zmax]) 设置x-y-z坐标指定的区间范围。

还要考虑到z坐标。

⽰例如下:>> x = 1:10;>> subplot(2,1,1) % 默认范围>> plot(x,x.^2)>> subplot(2,1,2) % 设置x范围[0,12],y任意>> plot(x,x.^2,'r')>> axis([0 12,-inf,inf])具体⽤法如下:plot(x, y); // 画图后⽤axis函数设置坐标轴的范围axis([xmin xmax ymin ymax]); % 设置坐标轴在指定的区间xmin、xmax 表⽰设置横坐标的最⼩最⼤值;ymin、ymax 表⽰设置纵坐标的最⼩最⼤值。

2) 函数set ():set函数进⾏设置(对指定的坐标轴进⾏设置)具体⽤法如下:plot(x, y); // 画图后⽤set函数设置坐标轴的属性set(handles,'xtick',0:100:2500) % handles可以指定具体坐标轴的句柄功能:设置X轴坐标范围0到2500,显⽰间隔是100;set(handles,'ytick',0:100:2500) % handles可以指定具体坐标轴的句柄功能:设置X轴坐标范围0到2500,显⽰间隔是100;3) 函数xlim( )/ ylim ( )使⽤⽅法: xlim([XMIN XMAX]) % sets the x limitsx轴上下限设定xlim([a,b]);y轴上下限设定ylim([a,b])% set(gca,'xlim',[-20 20],'ylim',[-20 20]); 表⽰:设置当前图的横轴和纵轴的范围,lim就是limite的意思。

Matlab关于如何读取文件夹中的所有图片(3种方法)

Matlab关于如何读取文件夹中的所有图片(3种方法)

Matlab关于如何读取⽂件夹中的所有图⽚(3种⽅法) Matlab读取图⽚的⽅法有很多种,我给出的⽅法思想和他们的差不多⼀样,但是代码的风格可能有点区别,可以学习。

⽅法1:⾸先定义⽂件夹的名称:[cpp]1. imgDir='.\coimg\';2. imgDir2='.\\coimg\\%s'; ⽤于读取图⽚具体代码:[cpp]1. oldPwd = pwd;2. cd(imgDir);3. x = dir;4. listOfImages = [];5. for i = 1:length(x),6. if x(i).isdir == 0,7. listOfImages = [listOfImages; x(i)];8. end;9. end;10. cd(oldPwd);11.12. fid=imgDir2;13. for j = 1:length(listOfImages)14. fileName = listOfImages(j).name;15. rfid=sprintf(fid,fileName);16. Irgb=imread(rfid);17. Iset{j}=Irgb;18. end⽂中 x(i).isdir==0 其实意思是跳过i=1,2时,那是isdir==1,其实是为了跳过'.','..',这个应该是操作系统的知识吧。

最后将读取的图⽚放在Iset⾥⾯。

代码很简单。

⾃⼰⼿写,测试成功两幅图⽚在Iset⾥⾯啦。

⼩技巧值得注意。

⽅法2:适合⽂件夹⾥⾯的图⽚批量处理,⾮常好的算法,应该值得学习。

[cpp]1. function database = build_database(rt_data_dir,suffix)2. % This function is to build a database for the image sets3. % Input: rt_data_dir -- direction of image sets4. % suffix -- image format like 'jpg'5. % Output: database -- database that contains all the information of6. % images7.8. % Written by Wei Q9. % July. 16, 201310.11. fprintf('dir the database...');12. subfolders = dir(rt_data_dir);13.14. database = [];15.16. database.imnum = 0; % total image number of the database17. ame = {}; % name of each class18. bel = []; % label of each class19. database.path = {}; % contain the pathes for each image of each class20. database.nclass = 0;21.22. for ii = 1:length(subfolders),23. subname = subfolders(ii).name;24.25. if ~strcmp(subname, '.') & ~strcmp(subname, '..'),26. database.nclass = database.nclass + 1;27.28. ame{database.nclass} = subname;29.30. frames = dir(fullfile(rt_data_dir, subname, suffix));31. c_num = length(frames);32.33. database.imnum = database.imnum + c_num;34. bel = [bel; ones(c_num, 1)*database.nclass];35.36. for jj = 1:c_num,37. c_path = fullfile(rt_data_dir, subname, frames(jj).name);38. database.path = [database.path, c_path];39. end;40. end;41. end;42. disp('done!');应该试着⾃⼰写写。

matlab image函数用法

matlab image函数用法

matlab image函数用法MATLAB Image函数用法Image函数是Matlab的一个基本的图像处理函数,可以用来读取、显示和储存各种格式的图像,并且可以进行基本的图像矩阵变换,是Matlab中常用的图像处理方法。

以下将详细介绍如何使用Image函数:第一步:载入图片如果要对某个图片进行处理,首先需要将其载入Matlab环境中,可以使用Image函数来实现。

可以通过下面的代码来完成:A = imread('path_to_image');其中path_to_image指定了图片的位置,读取后会自动填充到变量A 中,这样就可以用A来进行后续的处理。

第二步:显示载入的图片载入完图片以后,我们可以使用下面的命令来显示该图片:imshow(A);这步骤完成后,就可以在Matlab环境中看到载入的图片。

第三步:图像矩阵变换如果要对载入的图片进行像素矩阵的变换,比如反转、镜像等等,可以使用以下代码来实现:B = imrotate(A, 90); //旋转90度C = flipud(A); //上下翻转D = fliplr(A); //左右翻转这些操作会对载入的图片进行像素矩阵变换,变换后的图像就会储存到相应变量中,例如旋转后的图像就会储存在B中,上下翻转后的图像就会储存在C中,左右翻转后的图像就会储存在D中,之后可以使用imshow函数来查看这些变换后的图片。

第四步:存储变换后的图片如果想对变换后的图片进行存储,可以使用Image函数中提供的imwrite函数来实现,可以使用如下代码:imwrite(B,'rotated.jpg'); //保存旋转后的图片imwrite(C,'Vertical_flip.jpg'); //保存上下翻转后的图片imwrite(D,'Horizontal_flip.jpg'); //保存左右翻转后的图片其中,括号内的参数指定图片的存储路径和名称,执行完上述代码,就可以在指定位置看到三张变换后的图片。

使用MATLAB绘图时,如何保存高清矢量图

使用MATLAB绘图时,如何保存高清矢量图

使用MATLAB绘图时,如何保存高清矢量图
使用MA TLAB绘图时,若直接在图窗中保存或截图保存,在Word文档中插入保存的文件时会很模糊。

为解决这个问题,常将MA TLAB绘制的图以矢量图格式进行保存,下面进行介绍。

首先使用plot()函数绘制曲线图,示例代码如下:
x=0:0.1:2*pi;
y=sin(x);
plot(x,y);
在弹出图窗后有以下两种方法保存为高清矢量图。

1.保存为矢量图文件
使用print('D:\sin.emf','-dmeta')语句,其中'D:\sin.emf'是文件保存的路径,可以按实际情况进行修改,.emf为矢量文件扩展名。

保存之后,若需要在文档中插入此图,可直接从文件插入,找到保存的路径进行插入即可。

2.复制到剪贴板
使用print('-clipboard','-dmeta')语句,此时图片已复制到了剪贴板中,在Word 文档中使用粘贴即可直接插入图片,如下图
下图是粘贴得到的图,可以发现图片放大后没有失真,说明这是矢量图。

Matlab中保存图像时,图形窗口大小的控制

Matlab中保存图像时,图形窗口大小的控制

Matlab中保存图像时,图形窗口大小的控制zz首先要了解的是Matlab是面向对象的。

最高等级的对象是screen,它定义了figure可以用的最大szie。

screen下面是figure。

figue就是你画图的时候跳出来的那个新的对话窗口。

如果figure变化,screen是不会跟着变化的。

但screen变化的话,figure就要跟着变化了。

figure下面是axes。

axes是那个窗口里面你要画的东西。

axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。

set(gca,'position',[])因此,set (gca,'position',[0.1,0.1,0.9,0.9] );的作用是:设置坐标轴距离画板(图形窗口figure)边距。

[0.1,0.1,0.9,0.9] 分别为axes在figure中的左边界,下边界,宽度,高度,最小为0,最大为1(左边界,下边界为0,上边界,右边界为1)见下面的例子:-----------------------------------------------------------------------------figureset (gca,'position',[0.1,0.1,0.9,0.9] );x=1:0.1:10;y=sin(x);plot(x,y)-----------------------------------------------------------------------------结果见下图:set(gcf,'position',[])一般matlab绘出来图的框架(图形窗口)大都是正方形或者近似正方形的矩形,能不能画一些扁的矩形呢?使用图形的position属性可以做到。

如set(gcf,'unit','normalized','position',[0.2,0.2,0.64,0.32]);的意思是:对gcf的position进行设置。

matlab生成多张figure以及自动保存

matlab生成多张figure以及自动保存

MATLAB生成多张figure以及自动保存最近开始做毕业论文了。

在整理以前做过的诸多论文实验的时候,发现以前用MATLAB写出来的代码是在太混乱了。

算法程序,数据生成,以及图片绘画的.m文件都放在一个目录下。

不要说拿给别人看,就连我自己时间久了都搞不清楚哪种图片是哪个MATLAB程序生成的。

MATLAB没有Visual C++, Java那正规软件开发环境的工程概念,所以人工管理比较麻烦。

一般外人拿到一个论文的实验程序,最简单的,就是拿到一个入口程序,能够自动跑所有的实验程序,并且生成所有的实验图片。

这样,他就至少可以从这个入口程序一步一步跟踪进去,搞明白这一堆.m是什么东西。

那么有个关键问题,如何在一个程序里面生成多个figure呢?查了一下网上,有通过subplot方法实现的。

不过这个方法似乎不太好,因为它其实是将多个figure嵌到一个figure 里面,那么最终还是得一个个分开才能贴到论文里面。

下面是我论文里面的一个例子:function figure_wages()h=figure(1);figure_SLICE();saveas(h,'figure_wages_SLICE.fig');h=figure(2);figure_CARE();saveas(h,'figure_wages_CARE.fig');end这里我用过两个算法在同一块数据上进行训练,最后结果就生成下图两个figure了。

并且调用saveas函数可以实现自动把这两个figure保存到磁盘的.fig文件。

这里的h=figure(1)目的就是制定当前的默认显示的Figure的ID号,并且返回给句柄h。

PS:这里使用的数据都是真实的个人收入数据,其中另外2个维度分别是学历和工作经历。

大家看得出来,这些是在一个平面上的吗?分享到:4楼dragonworrior 2011-04-07 10:05发表[回复]3楼andysun001 2010-03-10 13:56发表[回复]2楼baltam 2009-11-12 21:58发表[回复]其实,如果你是想产生图片,并插入到论文中。

利用matlab GUI编程实现对不同格式的图片的打开和保存

利用matlab GUI编程实现对不同格式的图片的打开和保存

利用matlab GUI编程实现对不同格式的图片的打开和保存建立的GUI如下:在打开按钮的回调函数里,利用uigetfile()函数建立一个打开文件的对话框,利用imread()函数来打开图片,imshow()函数显示图像,具体代码如下:[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'选择图片');if isequal(filename,0)disp('Users Selected Canceled');elsestr=[pathname filename];im = imread(str);axes(handles.axes1);%axes1是坐标轴的标示imshow(im);end;运行之后的截图如下:在保存按钮的回调函数中,利用了uiputfile()函数建立了一个保存文件的对话框,调用matlab 的imwrite()函数保存经过修改的图像,具体代码如下:[filename,pathname]=uiputfile({'*.bmp';},'保存图片','Undefined.bmp');if ~isequal(filename,0)str = [pathname filename];px=getframe(handles.axes1);%saveas(gcf,str,'bmp');�ta = getappdata(gcf,'Timg');imwrite(px.cdata,str,'bmp');close(gcf);elsedisp('保存失败');end;其中的函数getframe()是为了获取坐标轴中的一帧图像,其返回的对象中有cdata和colormap 两个成员。

Matlab保存透明图片程序

Matlab保存透明图片程序

将以下代码复制到m文件并保存为“im2tm”,即可运行。

function im2tm%%%%%%%%--------------------------------------------------------%%此函数将图片的背景处理成透明背景,并将处理后的图片保存为png格式的图片。

%%先将要转换的图片放到当前目录下,然后运行此函数,即可完成转换。

%%转换好的图片将以“原图片名”+“_透明”的命名保存在当前目录下。

%%LX,2012.08.15%%%%%%%%--------------------------------------------------------Im_name=input('请输入要转换的图片的名称全称,如“我的图片.jpg”:\n','s');I=imread(Im_name);%%%方式一:将图片中所有的背景区域转换为透明背景I=imresize(I,2);G=rgb2gray(I);ima=imadjust(G);level=graythresh(G);bw=im2bw(ima,0.95);figure,imshow(bw)bw2=~bw;% S=strel('line',8,50);% bw2=imclose(bw2,S);%bw2 =bwareaopen(bw2, 20);figure,imshow(bw2)R=I(:,:,1);G=I(:,:,2);B=I(:,:,3);% R(bw2)=0;% G(bw2)=0;% B(bw2)=0;rgb=cat(3,R,G,B);siz=size(I);alpha=ones(siz(1),siz(2));alpha(~bw2)=0;%背景为白色%alpha(bw2)=0;%背景为黑色figure,imshow(rgb)Im_name(end-3:end)=[];imwrite(rgb,[Im_name,'_透明.png'],'Alpha',alpha)disp('转换成功!')。

matlab图片处理课程设计

matlab图片处理课程设计

matlab图片处理课程设计一、课程目标知识目标:1. 掌握MATLAB软件的基本操作,了解其在图片处理中的应用;2. 学习并掌握使用MATLAB进行图片读取、显示、保存等基本功能;3. 学习并掌握MATLAB中的图像处理工具箱,了解其功能及使用方法;4. 了解常见的图片处理技术,如灰度化、二值化、滤波、边缘检测等,并掌握其在MATLAB中的实现方法。

技能目标:1. 能够独立使用MATLAB进行图片的读取、显示、保存等操作;2. 能够运用MATLAB中的图像处理工具箱进行图片处理,实现灰度化、二值化、滤波、边缘检测等功能;3. 能够分析图片处理技术的原理,根据实际问题选择合适的图片处理方法;4. 能够结合实际问题,运用MATLAB进行图片处理,解决具体问题。

情感态度价值观目标:1. 培养学生对图像处理技术的兴趣,激发学生探索图像处理领域知识的热情;2. 培养学生动手实践、团队协作的能力,养成合作、分享的学习习惯;3. 培养学生运用所学知识解决实际问题的能力,增强学生的自信心和成就感;4. 引导学生认识到图像处理技术在现实生活中的应用,提高学生对技术改变生活的认识。

课程性质:本课程为实践性较强的课程,结合课本知识,让学生在实际操作中掌握图片处理技术。

学生特点:学生具备一定的计算机操作能力,对图像处理有一定了解,但可能对MATLAB软件及图像处理工具箱的使用不够熟悉。

教学要求:教师需注重理论与实践相结合,引导学生通过实际操作掌握图片处理技术,同时关注学生的个体差异,给予个别指导。

在教学过程中,关注学生的学习进度和反馈,及时调整教学方法和节奏,确保课程目标的实现。

二、教学内容本课程教学内容主要依据课程目标,结合教材相关章节,进行如下安排:1. MATLAB软件入门- MATLAB软件安装与界面介绍- 基本数据类型、运算符和数组操作- MATLAB编程基础:流程控制、函数编写与调试2. 图像处理基础- 图像的读取、显示与保存- 图像类型及转换:彩色图像、灰度图像、二值图像- 图像的基本属性:分辨率、像素、颜色空间3. 图像处理方法- 灰度化处理:加权平均法、最大值法、最小值法等- 二值化处理:全局阈值法、局部阈值法、Otsu方法等- 滤波处理:均值滤波、中值滤波、高斯滤波等- 边缘检测:Sobel算子、Prewitt算子、Canny算子等4. MATLAB图像处理工具箱- 图像处理工具箱的安装与使用- 常用函数介绍:imread、imshow、imwrite、rgb2gray、edge等- 结合实例进行图像处理操作演示教学内容安排与进度:1. 第1周:MATLAB软件入门2. 第2周:图像处理基础3. 第3周:图像处理方法(灰度化、二值化、滤波)4. 第4周:图像处理方法(边缘检测)及MATLAB图像处理工具箱教学内容依据教材章节进行组织,确保科学性和系统性。

MATLAB_动态图

MATLAB_动态图



surf(Z);
axis tight manual off%保持刻度不随数据的大小而变化,以数据的大小为坐标轴的范围,不显示坐标系 set(gca,'nextplot','replacechildren'); %在当前设置下清清除所有子对象 for k = 1:nFrames


5
移动坐标轴
% ligo 数据来源: /science/GW100916/Lstrain_hp30-968654552-10.txt ligodata=load('D:\LIGOdata.txt'); ligodata=ligodata'; t=linspace(0,10,163840); subplot(2,1,1); plot(t,ligodata); title('LIGO Livingston Observatory data for GW100916'); xlabel('Time[Seconds] from 2010-09-16 06:42:17 UTC (968654552.0)'); ylabel('Gravitational-wave strain amplitude');
for k = 0:3:360
view(k,37.5); drawnow; end
15
切换视角
16
运动轨迹
运动轨迹可以利用comet或comet3来实现 comet(x,y,p) comet3(x,y,z,p)
p可取[0,1],它制定‚彗星‛拖尾的长度,p越大就越长
mov(k) = getframe(gcf);

MATLAB:如何保存图片到指定文件夹的三种方法

MATLAB:如何保存图片到指定文件夹的三种方法

MATLAB:如何保存图⽚到指定⽂件夹的三种⽅法
MATLAB:如何保存图⽚到指定⽂件夹的三种⽅法
⽅法⼀
在matlab中,直接imwrite()保存图⽚,会保存到当前⼯作⽬录⽂件夹或其⼦⽂件夹。

1 %直接保存
2 imwrite(picture,'test1.png')
3
4 %在当前⼯作⽬录下新建⽂件夹并保存
5 mkdir image % 如果⽂件夹已存在,会有警告,但不影响运⾏
6 imwrite(picture,'image/test1.png')
⽅法⼆
如果要把图⽚保存到其他指定的⽂件夹,可以通过 cd 命令切换当前⼯作⽬录实现,但要提前通过 pwd 保存原⼯作⽬录,为了在保存图⽚之后切换回到原⼯作⽬录。

1 filepath=pwd; %保存当前⼯作⽬录
2 cd('f:\image') %把当前⼯作⽬录切换到指定⽂件夹
3 imwrite(picture,'test1.png')
4 cd(filepath) %切回原⼯作⽬录
⽅法三
也可以在切换⼯作⽬录之后新建⽂件夹⽤于保存图⽚。

1 filepath=pwd; %保存当前⼯作⽬录
2 cd('f:') %把当前⼯作⽬录切换到图⽚存储⽂件夹
3 mkdir image % 如果⽂件夹已存在,会有警告,但不影响运⾏
4 imwrite(picture,'image/test1.png')
5 cd(filepath) %切回原⼯作⽬录
注意在保存完图⽚或其他操作之后要切换回到原⼯作⽬录,以继续之后的指令。

Matlab的基本用法

Matlab的基本用法

读取图像:用imread函数读取图像文件,文件格式可以是TIFF、JPEG、GIF、BMP、PNG等。

比如>> f = imread('chestxray.jpg');读进来的图像数据被保存在变量f中。

尾部的分号用来抑制输出。

如果图片是彩色的,可以用rgb2gray转换成灰度图:>> f = rgb2gray(f);然后可以用size函数看图像的大小>> size(f)如果f是灰度图像,则可以用下面的命令把这个图像的大小赋给变量M和N>> [M, N] = size(f);用whos命令查看变量的属性>> whos f显示图像:用imshow显示图像imshow(f, G)其中f是图像矩阵,G是像素的灰度级,G可以省略。

比如>> imshow(f, [100 200])图像上所有小于等于100的数值都会显示成黑色,所有大于等于200的数值都会显示成白色。

pixval命令可以用来查看图像上光标所指位置的像素值。

pixval例如>> f = imread('rose_512.tif');>> whos f>> imshow(f)如果要同时显示两幅图像,可以用figure命令,比如>> figure, imshow(g)用逗号可以分割一行中的多个命令。

imshow的第二个参数用一个空的中括号:>> imshow(h, [])可以使动态范围比较窄的图像显示更清楚。

写图像。

用imwrite写图像imwrite(f, 'filename')文件名必须包括指明格式的扩展名。

也可以增加第三个参数,显式指明文件的格式。

比如>> imwrite(f, 'patient10_run1.tif', 'tif')也可以写成>> imwrite(f, 'patient10_run1.tif')还可以有其他参数,比如jepg图像还有质量参数:>> imwrite(f, 'filename.jpg', 'quality', q)q是0到100之间的一个整数。

MATLAB绘图整理

MATLAB绘图整理

MATLAB命令窗口换行:同时按住shift+enter键。

MATLAB绘图相关:1.曲线颜色、线型及标记点类型(1)、各种颜色属性选项及选项意义(以下为简单颜色可直接使用,其它颜色可通过[RGB]矩阵设置)'r' 红色'm' 品红'g' 绿色'c' 青色(亮蓝色)'b' 蓝色'w' 白色'y' 黄色'k' 黑色(2)、各种线型属性选项及选项意义'-' 实线'--' 虚线':' 点线'-.' 点划线(3)、各种标记点属性选项及选项意义'.' 用点号绘制各数据点'^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点'>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点'<' 用左三角绘制各数据点'o' 用圆圈绘制各数据点'x' 用'x'号绘制各数据点's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamond用菱形绘制各数据点'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的'+'号绘制曲线,通常将表示颜色的字符放在前面。

plot(x,z,'r>-','MarkerFaceColor','g') 用实心的三角形会输据点注意:1)以上表示属性的符号必须放在同一个字符串中;在画图命令前加上这一句:可使绘图窗口坐标轴周围背景由默认的灰色变为白色,figure1 = figure('Color',[1 1 1]);2.设置曲线线宽、标记点大小,标记点边框颜色和标记点填充颜色等。

matlab保存图片的四种方法

matlab保存图片的四种方法

matlab保存图片的方法1、从菜单保存可以保存为fig,eps,jpeg,gif,png,bmp等格式。

为利于后续修改(如更改标题,字体大小,图片尺寸大小,颜色,线形,线宽等等),可先保存为fig格式。

2、复制粘贴edit------〉copy figure,再粘贴到其他程序。

此方法所得图形最清晰最漂亮,强烈推荐!3、saveas函数saveas(gca,filename,fileformat)这个函数好像不太好用,有时会有问题4、print函数4.1 实例>> x=-pi:2*pi/300:pi;>> y=sin(x);>> plot(x,y);>> print(gcf,'-dpng','abc.png') % 保存为png格式的图片。

>> pwdD:\Matlab\work>> dir>> % 现在到D:\Matlab\work 应该能找到图片abc.png 了>> figure(2) % 新建一个句柄为2的图形窗口。

>> plot(x,cos(x)); % 在句柄为2的图形窗口上画图。

>> grid>> print(2,'-djpeg','D:\abc.jpeg'); %将句柄为2的图形保存为jpeg/jpg格式的图片,>> %文件名为'D:\abc.jpeg'。

4.2 用法:print(图形句柄,存储格式,文件名);图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.用gcf可以获取当前窗口句柄。

指定存储格式。

常用的有:png格式:‚-dpng… (推荐这一种,与bmp格式一样清晰,文件也不大)jpeg: ‚-djpeg…(文件小,较清晰)tiff: ‚-dtiff…bmp: ‚-dbitmap…(清晰,文件极大)gif: ‚-dgif…(文件小但不清晰)文件名4.3 注意print函数必须紧跟在plot函数之后使用。

Matlab绘图基础——用print函数批量保存图片到文件(Printfigureorsa。。。

Matlab绘图基础——用print函数批量保存图片到文件(Printfigureorsa。。。

Matlab绘图基础——⽤print函数批量保存图⽚到⽂件(Printfigureorsa。

⼀、⽤法解析print(figure_handle,'formats','-rnumber','filename')%将图形保存为formats格式,分辨率为600的(默认为72),最好指定的分辨率⼤⼀点,否则保存图形的效果较差.1.1. 分辨率-rnumberUse -rnumber to specify the resolution of the generated output.To set the resolution(分辨率) of the output file for a built-in MATLAB format, use the -r switch.l For example, -r300 sets the output resolution to 300 dots per inch(每英⼨300个点)The –r switch is also supported for Windows Enhanced Metafiles(), JPEG, TIFF and PNG files, but is not supported for Ghostscript raster formats(栅格⽂件).l For more information, see and.—— 来⾃matlab帮助“print”页中1.2. 输出图⽚的“格式”formats请参考本⽂末尾⼆、⽤法⽰例% Save the figure with the handle h to a PostScript file named Figure1, which can be printed later.H = figure; % 指定图⽚打印figure_handles% 若没有figure_handle,则默认print当前显⽰图⽚plot(1:4,5:8)print(h,'-dpng','-r200','Figure1') % 这三⾏代码就够⽤了2.1. 设置输出图⽚的“图像纵横⽐”When you set the axes Position to [0 0 1 1] so that it fills the entire figure, the aspect ratio is not preserved when you print because MATLAB printing software adjusts the figure size when printing according to the figure's property. To preserve the image aspect ratio(图像纵横⽐)when printing, set the figure's 'PaperPositionMode' to 'auto' from the command line.set(gcf,'PaperPositionMode','auto')% Setting the current figure's (gcf) PaperPositionMode to auto enables% you to resize the figure window and print it at the size you see on the screen.举例:surf(peaks);shading interp% 画图,shading使图像美观axis off% 不显⽰坐标轴set(gcf,'PaperPositionMode','auto'); % 设置图像纵横⽐print('-dpng','-r200','a'); % 保存图⽚,名为a——来⾃matlab帮助 Printing Images 2.2. Batch Processing(图⽚保存“批处理”)filenameYou can use the function form of print to pass variables containing file names. For example, this for loop uses file names stored in a cell array to create a series of graphs and prints each one with a different file name:fnames = {'file1', 'file2', 'file3'};for k=1:length(fnames)surf(peaks);shading interpprint('-dtiff','-r600',fnames{k}) % fnames is a cell of string arrays so each element is a stringend————来⾃matlab帮助“print”页末注:如果你不能调整输出分辨率和⽂件格式,可能是"Printing and Exporting without a Display"问题,具体查看帮助“print”页———分割线————————————————————————————1.2. 输出图⽚的“格式”formatsThe following table shows the supported output formats for exporting from figures and the switch settings to use. In some cases, a format is available both as a MATLAB output filter and as a Ghostscript output filter. All formats except for EMF are supported on both Windows and UNIX platforms.Graphics Format Bitmap or Vector(⽮量)Print CommandOption StringMATLAB orGhostscriptBMP monochrome BMP Bitmap-dbmpmono Ghostscript BMP 24-bit BMP Bitmap-dbmp16m Ghostscript BMP 8-bit (256-color) BMP (this format uses a fixed colormap)Bitmap-dbmp256Ghostscript BMP 24-bit Bitmap-dbmp MATLAB EMF Vector-dmeta MATLAB EPS black and white Vector-deps MATLAB EPS color Vector-depsc MATLAB EPS Level 2 black and white Vector-deps2MATLAB EPS Level 2 color Vector-depsc2MATLAB HDF 24-bit Bitmap-dhdf MATLAB ILL (Adobe Illustrator)Vector-dill MATLAB JPEG 24-bit Bitmap-djpeg MATLAB PBM (plain format) 1-bit Bitmap-dpbm Ghostscript PBM (raw format) 1-bit Bitmap-dpbmraw Ghostscript PCX 1-bit Bitmap-dpcxmono Ghostscript PCX 24-bit color PCX file format, three 8-bit planes Bitmap-dpcx24b Ghostscript PCX 8-bit newer color PCX file format (256-color)Bitmap-dpcx256Ghostscript PCX Older color PCX file format (EGA/VGA, 16-color)Bitmap-dpcx16Ghostscript PDF Color PDF file format Vector-dpdf Ghostscript PGM Portable Graymap (plain format)Bitmap-dpgm Ghostscript PGM Portable Graymap (raw format)Bitmap-dpgmraw Ghostscript PNG 24-bit Bitmap-dpng MATLAB PPM Portable Pixmap (plain format)Bitmap-dppm Ghostscript PPM Portable Pixmap (raw format)Bitmap-dppmraw Ghostscript SVG Scalable Vector Graphics (For Simulink Models Only)Vector-dsvg MATLAB TIFF 24-bit Bitmap-dtiff or -dtiffn MATLAB TIFF preview for EPS files Bitmap-tiff。

Matlab如何制作和保存gif动图

Matlab如何制作和保存gif动图

Matlab如何制作和保存gif动图 很多时候我们并不只是想在Matlab中把图动态显⽰⼀下给⾃⼰看,⽽是需要将它保存为gif(为什么是gif呢?因为其⼩巧⽅便,容易嵌⼊到其他东西中),从⽽⽤以汇报说明,或者其他⽤途。

之前很长⼀段时间,我嫌matlab保存gif要改动的代码⽐较多(Mathematica只要在Animate时,将Animate改成Export就直接出图了),都是利⽤gif动画录制⼯具(推荐灵者Gif录制),在matlab图在跑的时候,给它录成gif。

后来,需要的从matlab中搞出来的gif越来越多了,深感录制⽅法的琐碎,便⼜想到了利⽤Matlab⾃⾝函数,将参数递变绘制的多张图,保存为gif动图。

⼀个简洁⽽基本的框架如下:1 clc2 clear3 pic_num =1;4for***************************5 plot(fig(i));%以上代码为画图代码,以下代码为保存gif的代码67 drawnow;%画gif动图的时候这个外⾯的⼤for循环就存在,直接把以下和for*******以上的代码放到对应的位置即可8 F=getframe(gcf);9 I=frame2im(F);10[I,map]=rgb2ind(I,256);1112if pic_num ==113 imwrite(I,map,'test.gif','gif','Loopcount',inf,'DelayTime',0.2);14else15 imwrite(I,map,'test.gif','gif','WriteMode','append','DelayTime',0.2);16end1718 pic_num = pic_num +1;1920end % 这⾥imwrite写⼊时,要保证原来已经有⼀个⽂件存在,才能⽤“append”参数,所以设置了⼀个pic_num,让⼀张图直接保存,后⾯⽤“append”。

matlab-图像处理-边缘检测算法五种

matlab-图像处理-边缘检测算法五种

matlab-图像处理-边缘检测算法五种五种实现matlab边缘检测算法:⽅法⼀:matlab⾃带的edge函数:将图⽚保存为lena.jpgI=imread('lena.jpg');%提取图像img=rgb2gray(I);[m,n]=size(img);BW1=edge(img,'sobel'); %⽤Sobel算⼦进⾏边缘检测BW2=edge(img,'roberts');%⽤Roberts算⼦进⾏边缘检测BW3=edge(img,'prewitt'); %⽤Prewitt算⼦进⾏边缘检测BW4=edge(img,'log'); %⽤Log算⼦进⾏边缘检测BW5=edge(img,'canny'); %⽤Canny算⼦进⾏边缘检测h=fspecial('gaussian',5);%?⾼斯滤波BW6=edge(img,'canny');%⾼斯滤波后使⽤Canny算⼦进⾏边缘检测subplot(2,3,1), imshow(BW1);title('sobel edge check');subplot(2,3,2), imshow(BW2);title('roberts edge check');subplot(2,3,3), imshow(BW3);title('prewitt edge check');subplot(2,3,4), imshow(BW4);title('log edge check');subplot(2,3,5), imshow(BW5);title('canny edge check');subplot(2,3,6), imshow(BW6);title('gasussian&canny edge check'); 效果如下图所⽰:⽅法⼆:Laplacian算法clear;sourcePic=imread('lena.jpg');%图像读⼊grayPic=mat2gray(sourcePic);%实现图像的矩阵归⼀化操作[m,n]=size(grayPic);newGrayPic=grayPic;LaplacianNum=0;%经Laplacian操作得到的每个像素的值LaplacianThreshold=0.2;%设定阈值for j=2:m-1 %进⾏边界提取for k=2:n-1LaplacianNum=abs(4*grayPic(j,k)-grayPic(j-1,k)-grayPic(j+1,k)-grayPic(j,k+1)-grayPic(j,k-1));if(LaplacianNum > LaplacianThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('Laplacian算⼦的处理结果') 效果图如下:⽅法三:Prewitt算法%Prewitt 算⼦的实现:clear;sourcePic=imread('lena.jpg');grayPic=mat2gray(sourcePic);[m,n]=size(grayPic);newGrayPic=grayPic;PrewittNum=0;PrewittThreshold=0.5;%设定阈值for j=2:m-1 %进⾏边界提取for k=2:n-1PrewittNum=abs(grayPic(j-1,k+1)-grayPic(j+1,k+1)+grayPic(j-1,k)-grayPic(j+1,k)+grayPic(j-1,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k+1)+grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-grayPic(j,k-1)-grayPic(j+1,k-1)); if(PrewittNum > PrewittThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('Prewitt算⼦的处理结果') 效果图如下:⽅法四:Sobel算法%Sobel 算⼦的实现:clear;sourcePic=imread('lena.jpg');grayPic=mat2gray(sourcePic);[m,n]=size(grayPic);newGrayPic=grayPic;sobelNum=0;sobelThreshold=0.7;for j=2:m-1for k=2:n-1sobelNum=abs(grayPic(j-1,k+1)+2*grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-2*grayPic(j,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k-1)+2*grayPic(j-1,k)+grayPic(j-1,k+1)-grayPic(j+1,k-1)-2*grayPic(j+1,k)-grayPic(j+1,k+1)); if(sobelNum > sobelThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('Sobel算⼦的处理结果') 效果如下:⽅法五:Roberts 算⼦的实现%Roberts 算⼦的实现:clear all;clc;sourcePic=imread('lena.jpg');grayPic=mat2gray(sourcePic);[m,n]=size(grayPic);newGrayPic=grayPic;robertsNum=0;robertThreshold=0.2;for j=1:m-1for k=1:n-1robertsNum = abs(grayPic(j,k)-grayPic(j+1,k+1)) + abs(grayPic(j+1,k)-grayPic(j,k+1)); if(robertsNum > robertThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('roberts算⼦的处理结果') 效果图:。

matlab中cftool的用法

matlab中cftool的用法

matlab中cftool的用法MATLAB中cftool的用法MATLAB中的cftool是一个交互式的拟合工具,用于在实验数据中拟合各种曲线模型。

下面是cftool的一些用法以及详细的讲解。

1. 打开cftool工具在MATLAB命令窗口中直接输入cftool,即可打开cftool工具。

2. 导入数据在cftool工具中,可以通过多种方式导入数据:•在工具栏点击”File”->“Import Data”,选择需要导入的数据文件;•直接在工具栏中点击”New Session”,手动输入数据。

3. 选择拟合模型在导入数据后,可以在左侧的”Fit”选项卡中选择需要的拟合模型。

cftool提供了多种常见的拟合模型,如线性、二次、指数等。

4. 拟合数据在选择了拟合模型后,可以点击”Fit”按钮对数据进行拟合。

cftool会自动计算出最佳拟合曲线,并在图像中展示出来。

5. 优化拟合模型参数如果觉得拟合效果还不够理想,可以在”Fit”选项卡中调整拟合模型的参数。

点击”Options”按钮,可以进入参数调整界面。

通过修改参数,可以优化拟合效果。

6. 验证拟合模型在进行参数优化后,可以点击”Go”按钮验证拟合模型的效果。

cftool会将拟合曲线与原始数据进行比较,给出拟合优度和拟合误差等评估指标。

7. 导出拟合模型当对拟合模型满意后,可以将其导出,进一步在MATLAB中应用。

在cftool工具上方的菜单栏中,点击”File”->“Export Model”,选择导出模型的格式和保存路径。

导出后的模型可以在其他MATLAB代码中加载和使用。

以上就是MATLAB中cftool的主要用法和讲解,通过这个交互式的拟合工具,可以方便地进行各种曲线拟合操作。

8. 调整数据范围在cftool工具中,可以通过调整数据范围来改善拟合效果。

在”Fit”选项卡的下方有一个”Data Range”选项,可以设置需要使用的数据范围。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab中图片保存的四种方法
关键字:
Saveas:>>saveas(gcf,['D:\保存的数据文件\方法1.png'])
>> saveas(gcf,['D:\保存的数据文件\方法2','.png'])
>> saveas(gcf,['D:\保存的数据文件\','方法3','.png'])
Print:>>print(gcf,'-djpeg','C:\abc.jpeg');
1、直接另存为
在figure中使用菜单file——>saveas——>选择保存形式(fig,eps,jpeg,gif,png,bmp等),这个的缺点是另存为的图像清晰度有很大的牺牲。

2、复制到剪贴板
在figure中使用菜单edit——>copy figure——>此时图像就复制到剪贴板了,我们可以借助其他软件(比如:绘图板)保存为需要的图片
3、saveas命令格式
用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'])
4、print函数
使用plot函数后紧接着用print函数。

print的三个参数:
(1)图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3。

(2)单引号字符串,指定存储格式。

用gcf可以获取当前窗口句柄。

png格式:'-dpng'
jpeg格式:'-djpeg',
tiff格式::'-dtiff'
bmp格式::'-dbitmap'
(3)文件名。

例:
>> x=-pi:2*pi/300:pi;
>> y=sin(x);
>> plot(x,y);
>> print(gcf,'-dpng','abc.png') % 保存为png格式的图片。

>> figure(2) % 新建一个句柄为2的图形窗口。

>> plot(x,cos(x)); % 在句柄为2的图形窗口上画图。

>> grid
>> print(2,'-djpeg','C:\abc.jpeg'); %将句柄为2的图形保存为jpeg/jpg格式的图片,文件名为'C:\abc.jpeg'。

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

1、将那个fig文件保存到Matlab的搜索路径下,双击打开它
2、在Matlab的command中输入如下内容
h=get(gcf,'chidren')
data=get(h,{'xdata','ydata','zdat a'})
%此时图形中所有图像的三维数据x,y,z将会以结构体的形式保存到data 变量中了。

相关文档
最新文档