【matlab】 输出图像大小调整
- 格式:docx
- 大小:209.69 KB
- 文档页数:15
Matlab图形窗口大小的控制,plot窗口大小,figure大小,axis设置,实用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属性可以做到。
电子信息科学与技术1101班1、图像大小变化:把图像变为原来的四倍A = imread('lena256.bmp');% 图像A的行列值[row_A, col_A] = size(A)%获得图像A四分之一大小的图像BB = A(1: 2 : row_A, 1: 2 : col_A);% 图像B的行列值[row_B, col_B] = size(B)C1(1:2:2*row_A-1,:) =A;C1(2:2:2*row_A,:) =A;C(:,1:2:2*col_A-1) =C1;C(:,2:2:2*col_A) =C1;[row_C, col_C] =size(C)figure;subplot(1,3,1), imshow(A);title([ '图像A的尺寸= [', num2str(row_A) ',' num2str(col_A), ']' ]);subplot(1,3,2), imshow(B);title([ '图像B的尺寸= [', num2str(row_B) ',' num2str(col_B), ']' ]);subplot(1,3,3), imshow(C);title([ '图像C的尺寸= [', num2str(row_C) ',' num2str(col_C), ']' ]);图像A的尺寸 = [256,256]图像B的尺寸 = [128,128]图像C的尺寸 = [512,512]2、图像分为上下两部分,上下颠倒。
A = imread('kids.tif');% 图像A的行列值[row, col] = size(A)%获得图像A二分之一大小的图像BB (row : (-1): 1,1: 1: col) = A(1: 1: row,1: 1: col);figure;subplot(1,2,1), imshow(A);subplot(1,2,2), imshow(B);3、图像分为左右两部分,左右颠倒。
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C 。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如距阵,特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
(4)出色的图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
新版本的MATLAB 对整个图形处理功能作了很大的改进和完善,使他不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB 同样表现了出色的处理能力。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
(5)应用广泛的模块集合工具箱MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。
一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。
目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP 与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
matlab中figure画布⼤⼩设置绘图窗⼝菜单File | Export Setup⾥很⽅便的改变这些属性,特别是Expand axes to fit figure,会更好减少空⽩边。
设置好可以保存模板,下次调⽤,也可以将这个功能写到m⽂件中,⾃动执⾏1、Matlab是⾯向对象的。
最⾼等级的对象是screen,它定义了figure可以⽤的最⼤szie。
screen下⾯是figure。
figue就是你画图的时候跳出来的那个新的对话窗⼝。
如果figure变化,screen是不会跟着变化的。
但screen变化的话,figure就要跟着变化了。
figure下⾯是axes。
axes是那个窗⼝figure⾥⾯你要画的东西。
axes的⼤⼩和位置取决于figure,如果放⼤缩⼩figure的⼤⼩,⾥⾯的图像也会跟着变化的。
例如:(PS:gca表⽰对axes的设置; gcf表⽰对figure的设置)set(gca,'position',[left,top,width,height])其中,left为axes距离figure左边框的距离,top为axes距离figure上边框的距离,width为axes(即图像)的宽度,height为axes的⾼度。
因此,set (gca,'position',[0.1,0.1,0.9,0.9] )的作⽤是设置坐标轴距离画板(figure)边距和图像(axes)的⼤⼩,其中[0.1,0.1,0.9,0.9] 分别为axes距离figure的左边界为0.1,上边界0.1,宽度0.9,⾼度0.9。
set(gcf,'position',[centerX, centerY,width, height])其中,centerX为figure的中⼼点在屏幕(screen)的x坐标,centerY为figure的中⼼点在屏幕的y坐标,width为figure的宽度,height为figure 的⾼度。
Matlab画图设置线宽和字号Matlab画图设置线宽和字号既然这么多人来这里看过,我就多做点注释,方便大家参考。
下边这段代码不需要特别设置,只需要在plot语句之后插入即可。
%plot your figure before %%%%%%%%%%%%%%%%%%%%%set(gcf,'Units','centimeters','Position',[10 10 7 5]);%设置图片大小为7cm×5cm%get hanlde to current axis返回当前图形的当前坐标轴的句柄,%(the first element is the relative distance of the axes to the left edge of the figure,...%the second the vertical distance from the bottom, and then the width and height;set(gca,'Position',[.13 .17 .80 .74]);%设置xy轴在图片中占的比例set(get(gca,'XLabel'),'FontSize',8);%图上文字为8 point或小5号set(get(gca,'YLabel'),'FontSize',8);set(get(gca,'TITLE'),'FontSize',8);set(gca,'fontsize',8);set(gca,'linewidth',0.5); %坐标线粗0.5磅set(gca,'box','off');%Controls the box around the plotting areaset(get(gca,'Children'),'linewidth',1.5);%设置图中线宽1.5磅%%%%%%%%%%%%%%%%%%%%%%%%%%%%下边附上其他参数的设置方法,其实就是利用函数句柄来对图形进行操作。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%常用选项和小技巧%%%%%%画等值线[cc hh]=contour(peaks(30),'LINESPEC','b-')clabel(cc,hh,'manual')%写文本text(5,10,'\bf math \sl math \it math \rm math \alpha','color',[0.1 0.1 0.9],'fontsize',24)%设置线宽set(gca,'linewidth',2)%写标题并设置字体的大小ti=title('Title of My Figure','color','blue')set(ti,'fontsize',24)drawnow%输出文件print -dpsc plotE.psprint -append -dpsc plotE.psprint -djpeg100 plotE.jpg%给定图窗口标题figure('Name','My Figure1')%设置使用调色板map=hsv(32);colormap(map)%设定等值线的范围caxis([-6 6])%设定colorbar的方向和位置hc=colorbar('hori');po=get(hc,'position');%set(hc,'position',[po(1) po(2)+0.14 po(3) po(4)-0.01]);%set(hc,'XLim',[0 300]);%设置绘图的缺省值set(0,'DefaultLineLineWidth',2)set(0,'DefaultAxesFontSize',18)set(0,'DefaultAxesLineWidth',2)set(0,'DefaultAxesTickLength',[0.01 0.025])set(0,'DefaultPatchLineWidth',2)set(0,'DefaultSurfaceLineWidth',2)set(0,'DefaultRectangleLineWidth',2)set(0,'DefaultLineLineWidth','remove')set(0,'DefaultAxesFontSize','remove')set(0,'DefaultAxesLineWidth','remove')set(0,'DefaultAxesTickLength','remove')set(0,'DefaultPatchLineWidth','remove')set(0,'DefaultSurfaceLineWidth','remove')set(0,'DefaultRectangleLineWidth','remove')%%set(0,'DefaultLineLineWidth','factory')%%get(0,'factory')%设置坐标轴的间隔和显示set(gca,'XTick',[0:1:25],'YTick',[0:300:6000])set(gca,'XTickLabelMode','manual')set(gca,'XTickLabel','0|||||5|||||10|||||15|||||20|||||25|')%分别设置等值线和等值线标注的间隔[cc hh]=contour(peaks(30),[-6:2:8])c(cc,hh,[-6:4:8],'fontsize',15,'color','r','rotation',0,'labelspacing',200)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%几个实例%%%%%%给定月份名字name='JanFebMarAprMayJunJulAugSepOctNovDec'%给定每层深度depth=[5 15 25 35 45 55 65 75 85 95 110 130 155 185 220 260 305 365 450 575 755 1115 1735 2615 3645 4830]%给定经纬度x=31:1:288;y=-61:1:61;[lo la]=meshgrid(x,y);%等值线间距vt=2:2:30;vs=30:0.5:36;vc=10:5:200;%打开文件读取数据h1=fopen(['plotE' '.dat']);u=fscanf(h1,'%f',[258 123]);v=fscanf(h1,'%f',[258 123]);t=fscanf(h1,'%f',[258 123]);s=fscanf(h1,'%f',[258 123]);ccc=fscanf(h1,'%f',[258 123]);%设置流速标尺u(20,220)=0.5;%%%%%%%%figure1%%%%%%%%等值线figure;m_proj('Lambert','lon',[31 288],'lat',[-61 61]);hold on;[cc hh]=m_contour(lo,la,ccc);c(cc,hh,'fontsize',6);title('carbon concentration');m_coast('patch',[0.1 0.1 0.8])m_grid('linestyle','none','box','fancy','linewidth',2,'XaxisLocation','bottom') print -dpsc mmap.ps%%%%%%%%figure2%%%%%%%%矢量图figure;m_proj('Equidistant','lon',[31 288],'lat',[-61 61]);hold on;m_coast('patch',[0.3 0.5 0.3]);m_grid('linestyle','none','tickdir','out','linewidth',2,'XaxisLocation','top') hq=m_quiver(lo,la,u',v',2)set(hq,'color','b')m_text(240,54,'0.5 cm s^{-1}','color','r','fontsize',10)print -dpsc -append mmap.ps%%%%%%%%figure3%%%%%%%%使用高分辨率岸线figure;m_proj('Equidistant','lon',[31 288],'lat',[-61 61]);hold on;m_contour(lo,la,t)hq=m_quiver(lo,la,u,v,2)set(hq,'color','b')m_text(240,54,'50 cm s^{-1}','color','r','fontsize',10)m_coast('patch',[0.1 0.1 0.8]);m_grid('linestyle','none','tickdir','out','linewidth',2,'XaxisLocation','top')%m_gshhs_i('patch',[0.1 0.1 0.8]);%m_gshhs_h('patch',[0.1 0.1 0.6]);%m_gshhs_h('save','gumby');%m_usercoast('gumby','patch',[0.1 0.1 0.6]);print -dpsc -append mmap.ps%%%%%%%%figure4%%%%%%%%直线图figure;m_proj('Equidistant','lon',[31 288],'lat',[-61 61]);hold on;m_coast('patch',[0.1 0.1 0.8]);lo1=[180:5:270]la1=[-30:5:60]m_line(lo1,la1,'marker','.','markersize',20,'linestyle','none')m_grid('linestyle','none','tickdir','out','linewidth',2,'XaxisLocation','top','xtick',12) print -dpsc -append mmap.ps。
因为科研或者其他需要,我们利用MATLAB绘制的图片具有一定的要求,甚至部分图片放在word里面显示不清晰,那么,今天月影给大家带来如何导出高清图片教程,另外对导出图片的线条、字体、大小等方面也进行了简单介绍
首先,在生成的图片,点击左上角文件
然后点击导出设置
点击渲染
点击分辨率下拉按钮,选择分辨率,一般默认为自动
接下来便是图片大小设置,点击大小,然后可以设置高度、宽度以及单位等
点击字体,一般默认自定义,也可以进行选择,包括图片名称,粗细,角度等
点击线条,可以自定义宽度等等
最后设置好自己的图片,导出即可达到自己想要的要求
关注微信公众号:月影花溪情。
获得更多MATLAB实用技巧。
Matlab图形界面图像的旋转、平移和缩放姓名:班级:学号:目录问题描述 (2)摘要 (2)正文 (3)1、界面设计 (3)2、打开图片功能 (4)3、实现图片的任意角度的旋转 (5)4、图像的平移 (8)5、图像的缩放(放大与缩小) (12)实验心得 (17)附录: (17)Matlab图形界面操作—-—--—图像的旋转、平移和缩放问题描述期末运用学习的matlab知识通过图形用户界面对图片进行操作,实现如下功能.●能够查找和读取计算机中存储图像.●实现图像的旋转、平移、缩放等几何变换。
●通过matlab界面功能实现界面的完美布局。
●编写代码和回调函数实现上述功能.摘要本次任务旨在完成以下几个任务:●整体分为四大模块:原图、旋转、平移和缩放。
●利用数字图像处理技术,以MATLAB为平台,建立一个实现设计主题的简易处理系统。
●能显示输入图像、输出图像.●程序代码要有注释说明,调用MATLAB函数要清楚并理解函数的功能、使用范围,在设计说明书中要写清楚函数的功能和参数意义。
●完成自己课程设计说明书。
正文1、界面设计(1)在MATLAB命令窗口中输入“guide”,确定后,弹出GUI窗口.(2)本次设计中,包含两个坐标轴(axes1、axes2),分别显示原图和处理后的图像.包含六个按钮(Push Button),分别实现“打开图片、保存处理后的图片、旋转、平移、放大、缩小以及退出功能”。
(3)旋转功能同时可以实现选择0-360度任意的度数,当选择不同的度数后,axes2位置就会显示不同选择角度的图片.如果需要保存该图片可以单击保存按钮进行保存。
(4)平移功能的实现,当单击平移按钮,可以有一个默认的平移位置。
在设计中预设了几个固定位置,可以选择,分别是X单位Y单位方向都可以选择。
达到平移的目的。
(5)放大和缩小功能类似,在界面上表现为选择不同的数据,反映出来不同大小的图片。
(6)操作完成后,点击退出功能,将询问是否退出,如果退出则点击“是",不退出点击“我还要看看”.2、打开图片功能进入程序界面后,要实现几何操作,需要先打开一张图片。
matlab中的resize函数的用法MATLAB中的resize函数是一个非常有用的工具,用于调整图像尺寸和分辨率。
它不仅可以用于图像,还可以用于视频和音频数据。
本文将详细介绍MATLAB中resize函数的用法。
一、函数格式resize函数的一般格式如下:B = resize(A, [M N]);其中,A表示输入的原始图像或数据,B表示经过缩放后的结果图像或数据,[M N]表示最终输出图像或数据的大小。
二、调整图像大小可以使用resize函数来将图像调整为所需的大小。
例如,我们可以将一张512x512的图像缩小为256x256的图像,如下所示:A = imread('image.jpg');B = resize(A, [256 256]);imshow(B);在这个例子中,我们从文件中读取了一张图像,并使用resize 函数将其调整为256x256大小。
最后,使用imshow函数显示输出的结果。
三、调整图像分辨率除了可以调整图像大小外,resize函数还可以用于更改图像的分辨率。
分辨率是指图像的像素密度,通常表示为“dpi”(每英寸点数)。
例如,您可以将图像的分辨率从300dpi调整为150dpi,如下所示:A = imread('image.jpg');B = imresize(A, 0.5);imwrite(B, 'newimage.jpg', 'Resolution', 150);在这个例子中,我们针对一个300dpi的图像,使用imresize函数将其缩放为原来的一半。
最后,我们将调整后的图像保存到了一个新的JPEG文件中,并指定了输出文件的分辨率为150dpi。
四、调整视频大小使用resize函数我们也可以对视频进行缩放。
例如,下面的代码可以将一个640x480的输入视频缩放为320x240:v = VideoReader('input.avi');frames = read(v);for i = 1 : size(frames, 4)B(:,:,:,i) = resize(frames(:,:,:,i), [240 320]);endv2 = VideoWriter('output.avi');open(v2);writeVideo(v2,B);close(v2);在这个例子中,我们首先使用VideoReader函数从AVI文件中读取一个视频文件,然后使用resize函数将每一帧缩小为320x240大小。
MATLAB图像处理之平移,旋转,倾斜,放缩实验内容:如何对号灰度图像(或彩色图像)进行方所、平移、旋转和综合变换实验内容一:图像的放缩实验程序:%注意,当处理图像大小过大时,请先使用size函数得出矩阵大小,否则处理之后图像会提示内存不足,或者先压缩图像,又或者可以改变电脑运行内存,具体方法可以根据具体情况通过论坛查询,这里就不再过多赘述. x1=imread('0045.jpg');%导入真彩图片0045.jpg,是三维矩阵b=imresize(x1,20);%将原图像放大20倍c=imresize(x1,0.05);%将原图像缩小为原来的20倍figure,subplot(131),imshow(x1),title('原始图像');%此区域内显示1行3列个图像,该图像位于第1个,显示x1的图像,并命名为“原始图像”subplot(132),imshow(b),title('放大20倍');%此区域内显示1行3列个图像,该图像位于第2个,显示b的图像,并命名为“放大200倍”subplot(133),imshow(c),title('缩小20倍');%此区域内显示1行3列个图像,该图像位于第3个,显示c的图像,并命名为“缩小20倍”实验结果:实验内容二:图像的旋转实验程序:clear allclc%imrotate(A,angle,method,bbox)%功能:将矩阵(图片)A旋转任意角度%参数:A——待操作矩阵,angle——需要旋转的角度,method——插值方法,bbox——输出图像大小%将矩阵A旋转angle度(任意),其中angle应用角度制表示;method包括'nearest'、'bilinear'、%'bicubic'分别为“邻近插值法”、“双线性插值法”、“三次卷积插值法”;%bbox(Bounding ? ? box defining size of output image)包括'crop'、'loose',%分别表示将旋转后的图像剪裁为输入图像大小后输出和已旋转后图像大小输出%x1=imread('0045.jpg');%导入真彩图片0045.jpg,是三维矩阵x2=rot90(x1,1);%将图片旋转整数倍个90度figure;%生成图像subplot(272);%此区域生成2行7列个图像,该图像位于第2个imshow(x1);%显示x1生成的图像title('原始图像');%命名x1图像为“原始图像”subplot(275);%此区域生成2行7列个图像,该图像位于第5个imshow(x2);%显示x2生成的图像title('旋转90度');%命名x1图像为“旋转90度”x3=imrotate(x1,30,'nearest','loose');%使用最邻近法逆时针将图像旋转30度,使用loose形式输出图像x5=imrotate(x1,30,'nearest','crop');%使用最邻近法逆时针将图像旋转30度,使用crop形式输出图像x4=imrotate(x1,30,'bilinear','crop');%使用双线性插值法逆时针将图像旋转30度,使用crop形式输出图像x6=imrotate(x1,30,'bilinear','loose');%使用双线性插值法逆时针将图像旋转30度,使用loose形式输出图像subplot(278);%此区域生成2行7列个图像,该图像位于第8个imshow(x3);%显示x3生成的图像title('最邻近法逆时针旋转30度1');%命名x3图像为“最邻近法逆时针旋转30度”subplot(2,7,12);%此区域生成2行7列个图像,该图像位于第12个imshow(x4);%显示x4生成的图像title('双线性插值法逆时针旋转30度1');%命名x4图像为“双线性插值法逆时针旋转30度”subplot(2,7,10);%此区域生成2行7列个图像,该图像位于第10个imshow(x5);%显示x5生成的图像title('最邻近法逆时针旋转30度2');%命名x5图像为“最邻近法逆时针旋转30度2”subplot(2,7,14);%此区域生成2行7列个图像,该图像位于第14个imshow(x6);%显示x6生成的图像title('双线性插值法逆时针旋转30度2');%命名x6图像为“双线性插值法逆时针旋转30度2”实验结果:实验内容三:图像的平移3.1将图像从一个位置平移到另一个位置实验程序:x1=imread('0045.jpg');%导入真彩图片0045.jpg,是三维矩阵figure(1);%生成图像subplot(121),imshow(x1),title('原始图像');%此区域生成1行2列个图像,该图像位于第1个,并命名为“原始图像”,显示x1的图像se1=translate(strel(1),[100 -100]);%形态学膨胀后j1就是平移后的图像j1=imdilate(x1,se1);%对x1,se1进行膨胀操作subplot(122),imshow(j1),title('左下平移');%此区域生成1行2列个图像,该图像位于第2个,并命名为“左下平移”,显示j1的图像实验结果:实验内容四:图像的倾斜实验程序:A=imread('0045.jpg');%将图像导入工作区tform=affine2d([2 0.33 0;0 1 0;0 0 1]);%创建定义仿射几何变换的affine2d 对象B=imwarp(A,tform);%使用 imwarp 对图像应用几何变换。
Matlab图形窗口大小的控制,plot窗口大小,figure大小,axis设置,实用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进行设置。
使其在屏幕上的显示位置是以(0.2,0.2)为原点,长0.64,宽0.32。
同gca一样,仍然是左边界,下边界为0,上边界,右边界为1。
另外,gcf的position也可以不是normalized的。
如下面的例子:-----------------------------------------------------------------------------x=-2*pi:0.1:2*9i;y=sin(x);figure;set (gcf,'Position',[500,500,500,500], 'color','w') %大小设置plot(x,y,'k-') %节点位移图形输出xlim([min(s(:,2)) max(s(:,2))])grid on-----------------------------------------------------------------------------其中,[500,500,500,500]的意思为:原点的位置x,原点的位置y,宽,高,其坐标为points (详见下面),现在问题还存在:如果仅设置position的话,打印的时候还是正方形。
可以用下面的方法解决:通常默认情况下,print命令输出图像为8*5inches,无视屏幕显示尺寸通过命令行修改的话有三步1 设置paperposition为manualset(gcf,'PaperPositionMode', 'manual')[ auto | {manual} ]2 设置paperunitset(gcf,'PaperUnits','inches')[ {inches} | centimeters | normalized | points ]3 设置paperpositionset(gcf,'PaperPosition',[left,bottom,width,height])例如set(gcf, 'PaperPositionMode', 'manual');set(gcf, 'PaperUnits', 'points');set(gcf, 'PaperPosition', [0 0 640 480]);还有一个相关命令是papersizepaperposition 是placement,代表图像在paper(感觉就是屏幕screen的意思?)中的所处位置。
left和bottom计算好,就可以使图像在paper中居中papersize是纸张大小;position要比size小的PaperPositionfour-element rect vectorLocation on printed page. A rectangle that determines the location of the figure on the printed page. Specify this rectangle with a vector of the formrect = [left, bottom, width, height]where left specifies the distance from the left side of the paper to the left side of the rectangle and bottom specifies the distance from the bottom of the page to the bottomof the rectangle. Together these distances define the lower-left corner of the rectangle. width and height define the dimensions of the rectangle. The PaperUnits property specifies the units used to define this rectangle.要使图像比例输出与屏幕显示的一致,可以使用如下命令屏幕显示图像尺寸可以plot时用set(gcf,'position',[left bottom width height]) 调整,或者print之前拖动窗口手动调整This example exports a figure at screen size to a 24-bit TIFF file, myfigure.tif.% set(gcf,'position',[80 100 800 600]) % 如果手动拖放,则不需要这一行命令set(gcf, 'PaperPositionMode', 'auto') % Use screen sizeprint -dtiff myfigure用matlab画了一张图,投稿时要缩小,缩小后字体就会过小或者发虚。
我摸索出比较好的方法是如下的代码:%%%%%%%%%%%%%%%%%%%%%%plot your figure before%%%%%%%%%%%%%%%%%%%%%% figure resizeset(gcf,'Position',[100 100 260 220]);set(gca,'Position',[.13 .17 .80 .74]);figure_FontSize=8;set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');set(findobj('FontSize',10),'FontSize',figure_FontSize);set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);%%%%%%%%%%%% %%%%%%%%%%%%%%%%解释:set(gcf,'Position',[100 100 260 220]);这句是设置绘图的大小,不需要到word里再调整大小。
我给的参数,图的大小是7cmset(gca,'Position',[.13 .17 .80 .74]);这句是设置xy轴在图片中占的比例,可能需要自己微调。
figure_FontSize=8;set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top');set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle');set(findobj('FontSize',10),'FontSize',figure_FontSize);这4句是将字体大小改为8号字,在小图里很清晰set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);这句是将线宽改为2[转载]【Matlab】print输出图像大小调整已有 7803 次阅读2011-10-20 18:09|系统分类:科研笔记|关键词:print通常默认情况下,print命令输出图像为 8*5inches,无视屏幕显示尺寸通过命令行修改的话有三步1 设置paperposition为manualset(gcf,'PaperPositionMode', 'manual')[ auto | {manual} ]2 设置paperunitset(gcf,'PaperUnits','inches')[ {inches} | centimeters | normalized | points ]3 设置paperpositionset(gcf,'PaperPosition',[left,bottom,width,height])例如set(gcf, 'PaperPositionMode', 'manual');set(gcf, 'PaperUnits', 'points');set(gcf, 'PaperPosition', [0 0 640 480]);要使图像比例输出与屏幕显示的一致,可以使用如下命令屏幕显示图像尺寸可以plot时用set(gcf,'position',[left bottom width height]) 调整,或者print 之前拖动窗口手动调整This example exports a figure at screen size to a 24-bit TIFF file, myfigure.tif.% set(gcf,'position',[80 100 800 600]) % 如果手动拖放,则不需要这一行命令set(gcf, 'PaperPositionMode', 'auto') % Use screen sizeprint -dtiff myfigure/html/matlab/10873.htmlmatlab中imwrite和saveas的区别文章来源:不详作者:佚名该文章讲述了matlab中imwrite和saveas的区别.matlab中saveas(handle,['目录','文件名'])如果只有一幅图,handle设为gcf如果有多副,handle需单独设置matlab中imwrite(image_data,['directory\','filename'])需要与getframe连用两个命令都可以用来保存图像,区别在于1、背景色:saveas保存的图像背景色自动设置为白色,imwrite保存图像为所见即所得2、图像大小:saveas无视你设置的图像大小,按默认保存,imwrite保存所见即所得contrast example:在当前目录下image文件夹下找到两个图像,对比一下clearclcx=0:pi/100:2*pi;y=sin(x);h=plot(x,y); % h为plot线的句柄handleset(gcf,'position',[80,100,400,600])% 将图像设置为距屏幕左下角[80,100]像素% 图像大小设置为400*600像素set(gcf,'color',[1,1,1]) % 背景色设置为白色mkdir image% 在当前文件夹下新建image文件夹,如果已存在会warning,不影响运行% ========================saveas(gcf,['image\','test1.jpg'])% ========================f=getframe(gcf);imwrite(f.cdata,['image\','test2.jpg'])%% 也可以像下面这样用% [X,map]=getframe(gcf);% imwrite(X,'image\test2.jpg')/s/blog_810614a00101tmn7.htmlmatlab 保存高分辨率图像 dpi要在300以上(2014-03-31 19:16:43)转载▼标签:分类:matlab保存图像imwrite(Im,'testdpi.tif', 'tiff', 'Resolution',300);然后就会在MATLAB的工作目录下(一般为work文件夹)生成一个名为testdpi.tif的图像文件,并且DPI为300(右击/属性/摘要/高级)。