MATLAB如何输出无白边图片的操作方法

一、先显示图片,plot或者imshow无所谓。
 
 
 
imshow(strain_image,'border','tight','initialmagnification','fit');
 
%'border','tight'的组合功能意思是去掉图像周边空白
 
%'InitialMagnification','fit'组合的意思是图像填充整个figure窗口
 
源文档 <http://www.ilovematlab.cn/viewthread.php?tid=64587&>
 
 
 
二、设置窗口大小。只设置窗口大小就行,数组含义:[left bottom width height]。我是设成正方形。
 
 
 
set (gcf,'Position',[0,0,500,500])
 
 
 
顺便提一下,默认plot的position是   [232   246   560   420]
 
源文档 <http://wuzhi3495.blog.163.com/blog/static/11777398200912611912871/>
 
 
 
三、使图片填充整个figure,也就是成规定的形状。
 
 
 
axis normal;
 
 
 
一般的用plot函数画的图像只需要set(gca,'position',[0 0 1 1])就可以达到目的,但是imshow的函数里使用了axis image,保持了图像的比例,所以必须用axis normal改回来.才会伸缩图像填充这个figure区域.否则只能手动调整图像的大小,比例合适时空白也会消失.
 
源文档 <http://slowwind88.spaces.live.com/blog/cns!C76C0B9CAF5823DA!146.entry>
 
 
 
如果要控制插值方式,就要用imresize命令。
 
 
 
四、保存,只能用菜单里的“save as...”。
 
还没明白为什么。用命令saveas和imwrite都不行。而且保存下来的图片会被缩小到3/4。即使调整paperpositionmode和papersize也不行。
 
保存为pgm格式,即是8位的纯灰度图,无空白,无边框。以后可直接调入处理。如果写论文要加坐标轴标题什么的,自己处理下就行了。
 
 
 
总结,就是下面三条命令:
 
imshow(strain_image,'border','tight','initialmagnification','fit');
 
set (gcf,'Position',[0,0,500,500]);
 
axis normal;
 
 
 
 
 
Over

本文来自: 高校自动化网(Www.zdh1909.com) 详细出处参考(转载请保留本链接):http://www.zdh1909.com/html/matlab/16381.html

### 解决Matlab保存图片时出现白边的方法 在Matlab中保存无白边图片可以通过多种方法实现。以下是几种有效的方式: #### 方法一:使用 `export_fig` 函数 安装并加载 `export_fig` 工具箱后,可以直接调用此函数来保存高质量且无白边形文件。 ```matlab % 安装 export_fig (如果尚未安装) !git clone https://github.com/altmany/export_fig.git ~/+export_fig addpath(fullfile(matlabroot,'toolbox','local')) addpath(genpath('~/+export_fig')) % 使用 example figure figure; surf(peaks); shading interp; % 调用 export_fig 保存像到当前目录下的 test.png 文件中 export_fig('test.png','-png') ``` 这种方法通常能很好地去除默认边界,并提供更多的自定义选项[^1]。 #### 方法二:调整坐标轴位置属性 对于大多数绘命令(如 `plot`, `scatter`),只需简单地修改当前坐标区的位置即可消除多余的边缘空间。 ```matlab fig = figure; % 创建一个新的Figure窗口 ax = axes(fig); % 获取Axes对象句柄 plot(ax, randn(10), 'o-'); % 绘制一些随机数据点作为例子 set(ax, 'Position', [0 0 1 1]); % 设置Axes占据整个Figure区域 print('-dpng','-r300','no_margin_plot.png') ; % 打印成PNG格式高分辨率像 ``` 通过上述代码片段中的最后一行指令可以指定输出设备类型以及目标文件名;这里选择了 PNG 格式的位文件,并设置了分辨率为每英寸300像素以获得更好的质量效果[^3]。 #### 方法三:针对特定显示方式做出相应调整 当涉及到像 `imshow()` 这样的特殊展示形式时,则可能还需要额外考虑其他因素才能彻底移除不必要的留白部分。 ```matlab img = imread('peppers.png'); figure; hAx = imshow(img); % 将 axis 改为 normal 来取消固定纵横比约束, % 并允许像自动拉伸填满整个 Figure 窗口。 axis(hAx.Parent, 'normal'); % 移动 Axes 到最左上角并将宽度高度设为最大值, % 即让其完全覆盖住整个 Figure 的可视范围. set(hAx.Parent, ... 'Units', 'normalized',... 'OuterPosition',[0 0 1 1],... 'TightInset' , get(hAx.Parent,'TightInset')); % 更新 Position 属性使实际内容紧贴四周边缘 pos = hAx.Parent.Position - [... hAx.Parent.TightInset,... [0,hAx.Parent.TightInset(2:end)]]; pos(pos<0)=0;% 避免负数情况发生 set(hAx.Parent,'Position', pos) % 导出最终结果至磁盘文件系统内 print(gcf, '-dpng','-r300','tight_image_output.png'); ``` 这段脚本首先读取一幅测试用彩色像,接着创建了一个新的Figure实例用于呈现该像,在这之后便依次执行了一系列操作——从改变Axis模式直到精确控制各个方向上的间距参数,从而确保所得到的结果尽可能贴近预期形态.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值