Matlab 图片保存

博客介绍了print、saveas和imwrite三个用于图像保存的命令。print可打印图窗或保存为特定格式,适合论文图片。saveas用于另存为,imwrite可将图像数据写成图像文件。还对比了saveas与imwrite的区别,包括背景色和图像大小方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

print  打印图窗或保存为特定文件格式(论文图片推荐)

print(figure_handle,'filename''formats','-rnumber') 

print(filename,formattype,formatoptions)   % '-djpeg'|'-dpng'|'-dtiff'|'-dpdf'|'-deps'
% print('surfpeaks','-dpng')  位图文件
% print('surfpeaks','-depsc')  矢量图文件
  '-tiff' - 包括 TIFF 预览。仅限 EPS 文件。
  '-loose' - 使用宽松边界框。仅限 EPS 和 PS 文件。
  '-cmyk' - 使用 CMYK 颜色而非 RGB 颜色。仅限 EPS 和 PS 文件。

% 以屏幕大小和分辨率保存图片
% surf(peaks)
  set(gcf,'PaperPositionMode','auto')  % 保持图像纵横比
  print('PeaksSurface','-dpng','-r0')

指定图窗保存

figure(2);
plot(1:10);
print('-f2','line','-dpng');

saveas  (另存为)

saveas(figure_handle,filename,fileformat)
% 常用 saveas(handle,['目录名','文件名']);

imwrite (将图像数据写成图像文件)

%获取图像数据
I = getimage(gcf); % f = getframe(gcf);
%写成图片
imwrite(I,'myfig.jpg'); % imwrite(f.cdata,['D:\works',int2str(i),'.jpg'])

saveas与imwrite的区别

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

### 如何在MATLAB保存图片 #### 使用`saveas`函数保存图形窗口的内容 为了将图形窗口中的内容保存图像文件,可以使用 `saveas` 函数。此命令允许用户快速简便地把当前显示于屏幕上的任何可视化结果存储下来[^1]。 ```matlab figure; plot(1:10); saveas(gcf, 'myPlot.fig'); ``` 上述代码创建了一个简单的线性图表,并将其作为 `.fig` 文件保存到了工作目录中。当然也可以指定其他支持的格式如 PNG、JPEG 等。 #### 使用`print`命令导出高质量矢量图或位图 对于更精细控制的需求来说,则推荐采用 `print` 命令来进行操作。它不仅能够输出多种类型的静态图片而且还可以生成 PDF 或 EPS 这样的矢量图形文件,非常适合用于出版物级别的制图需求[^2]。 ```matlab % 创建一个新的图形对象 hFig = figure; % 绘制一些数据 surf(peaks); % 设置纸张大小以适应打印区域 set(hFig, 'PaperUnits', 'inches',... 'PaperPositionMode','auto'); % 执行打印动作并将结果存入PNG文件之中 print('-dpng','-r300','highQualityImage.png') ``` 这段脚本展示了怎样调整页面参数从而确保所得到的画面质量更高;同时指定了分辨率为每英寸三百像素(`'-r300'`)来进一步提升清晰度。 #### GUI界面下的Axes控件内图像捕获 当涉及到图形用户接口(GUI)开发时,如果想要获取特定 Axes 控件内的视图快照并把它转换成一张独立存在的图片文档的话,那么就需要借助额外的技术手段了。一种常见做法就是利用回调机制配合 FileDialog 来让用户自行挑选目标位置以及命名规则[^3]: ```matlab function saveFigure(hObject,eventdata) [filename, pathname] = uiputfile({'*.png'; '*.jpg'}, ... 'Save Figure As'); if ischar(filename) figHandle = ancestor(hObject,'figure'); print(figHandle,['-djpeg',fullfile(pathname,filename)]); end end ``` 这里定义了一个名为 `saveFigure` 的事件处理器,其作用是在按下按钮之后弹出对话框供使用者选择具体的储存路径与扩展名类型。 #### 应用`imwrite`函数直接写出矩阵形式的数据至磁盘上 最后还有一种情形是针对那些已经存在于内存里的二维数组——即所谓的灰阶或者彩色映射表而言,此时最简单有效的方式莫过于调用专门为此设计好的 `imwrite` 接口了。该方法可以直接接收多维数值型变量作为输入源,并按照给定的名字连同完整的相对/绝对地址一起传递过去完成整个过程[^4]。 ```matlab A = imread('peppers.png'); % 加载示例彩图资源 B = rgb2gray(A); % 转换成单通道亮度模式 C = flipud(B); % 上下翻转处理后的版本 % 将变换过的结果写回到本地硬盘当中去 imwrite(C, fullfile(pwd(), 'reversedPepper.jpg')); ``` 以上便是几种不同场景之下适用于 MATLAB 平台之上执行 “保存图片” 动作的具体实施方案介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值