saveas 函数 保存图像去掉白边 白色背景 matlab 图像加框

MATLAB中保存图像常使用imwrite函数,这个函数可以保存实际大小的图像。

但是如果想保存修改过得figure,比如imshow了一张图像,之后在这张图像上加上边框(rectangle)。如果想保存结果,imwrite就失效了。此时使用saveas函数保存这个figure。

saveas函数保存figure的同时会加上白色背景,目前还没有比较好的方法保存原始图像。这里介绍一个去白色背景的方法,但是分辨率会改变。不过保存了无白边图像,美观一些,观察实验结果足够了。

函数使用:

f=getframe(figure(1));
figure;imshow(f.cdata);

其中,figure(1)是显示的figure图像,根据标号自有修改。

f.cdata是去白边的图像。快来试试吧~

### Matlab 导出图片白边方法 #### 使用 `exportgraphics` 函数 (适用于 MATLAB R2020a 及以上) 对于较新版本的 MATLAB,可以使用内置函数 `exportgraphics` 来轻松移除导出图像中的白边。此方法特别适合处理 EPS 和 PDF 矢量图形文件。 ```matlab C = [0 2 4 6; 8 10 12 14; 16 18 20 22]; figure; imagesc(C); axis off % 关闭坐标轴显示 exportgraphics(gcf, 'output_image.pdf', 'Resolution', 300); % 设置分辨率并指定输出路径 ``` 该代码片段展示了如何创建一个简单的颜色映射图,并将其无白边保存为高分辨率 PDF 文件[^3]。 #### 调整图形窗口属性 另一种通用的方法是调整当前图形窗口 (`gcf`) 的位置以及坐标轴 (`gca`) 属性来实现白边的效果: ```matlab C = [0 2 4 6; 8 10 12 14; 16 18 20 22]; figure('Color', 'none'); % 将背景设为透明 imagesc(C); set(gca, 'Position', [0 0 1 1], ... % 占满整个绘图区域 'XTick', [], ... 'YTick', [], ... 'Box', 'off'); saveas(gcf, fullfile('E:', num2str(2), '.jpg')); % 自定义保存路径 ``` 这段脚本不仅消除了不必要的边界空间,还隐藏了刻度标记和框线,使得最终生成的 JPG 图片更加整洁[^4]。 #### 利用 `print` 命令控制输出质量 如果希望进一步定制化输出设置,则可以通过 `print` 命令来进行更精细的操作: ```matlab C = [0 2 4 6; 8 10 12 14; 16 18 20 22]; hFig = figure; imagesc(C); axis tight % 让数据范围紧贴边缘 box off; set(hFig, 'PaperUnits', 'inches', ... 'PaperSize', [width height], ... % 定义纸张大小 'PaperPositionMode', 'auto'); print('-dpng','-r300','no_margin.png') % 输出PNG格式,分辨率为300dpi ``` 上述例子中设置了页面单位、尺寸参数,并启用了自动定位模式以确保最佳填充效果;最后指定了目标文件名及其格式[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值