首页 > 编程笔记 > MATLAB笔记 阅读:8

MATLAB imwrite()函数:保存图片(附带实例)

在 MATLAB 中,imwrite() 函数用来写入各种图像文件,它的调用格式及说明如下表所示。

表:imwrite() 函数调用格式及说明
调用格式 说明
imwrite(A, filename) 将图像的数据 A 写入文件 filename 中,并从扩展名推断出文件格式
imwrite(A, map, filename) 将图像矩阵 A 中的索引图像以及颜色映像矩阵写入文件 filename 中
imwrite(…, Name, Value) 使用一个或多个名称-值对组参数,以指定 GIF、HDF、JPEG、PBM、PGM、PNG、PPM 和 TIFF 文件输出的其他参数
imwrite(…, fmt) 以 fmt 指定的格式写入图像,无论 filename 中的文件扩展名如何

利用 imwrite() 函数保存图像时,需要注意以下几点:
【实例】读取图片并转换图片格式。MATLAB 程序如下:
>> close all                        % 关闭当前已打开的文件
>> clear                            % 清除工作区的变量
>> A=imread('dish.jpg');            % 读取当前文件夹目录下的一个24位PNG图像
>> imshow(A)                        % 显示图像
>> imwrite(A,'dish_b.bmp','bmp');   % 将图像dish.jpg以名称dish_b保存到当前文件夹目录下,格式为.bmp
如下图所示,是运行上述程序显示的图片。


图 1 显示图片

【实例 2】显示二进制图像。MATLAB 程序如下:
>> close all                                               % 关闭当前已打开的文件
>> clear                                                   % 清除工作区的变量
>> [X,map] =imread('animals.gif',1);                       % 读取图像文件animals.gif的第1帧
>> subplot(1,3,1),imshow(X,map),title('第1帧索引图像')     % 显示第1帧带有颜色图的索引图像
>> [X,map]=imread('animals.gif',2);                        % 读取图像文件animals.gif的第2帧
>> subplot(1,3,2),imshow(X,map),title('第2帧索引图像')     % 显示第2帧带有颜色图的索引图像
>> A=imread('animals.gif',3);                              % 读取图像文件animals.gif的第3帧
>> subplot(1,3,3),imshow(A),title('第3帧灰度图像')         % 显示第3帧的灰度图像
>> imwrite(A,'animals.bmp','bmp');        % 将图像转换为BMP图像格式保存到当前目录下
如下图所示,是运行上述程序显示的图片。


图 2 显示图片

【实例 3】创建不同格式图像。MATLAB 程序如下:
>> close all                                             % 关闭当前已打开的文件
>> clear                                                 % 清除工作区的变量
>> [X,map] =imread('canoe.tif');                         % 读取tif图像文件
>> subplot(2,2,1),imshow(X,map),title('原图')            % 显示tif图像
>> A=imread('canoe.tif','PixelRegion',{[1 2],[3 4]});    % 读取tif图像数据的第 1 和第 2 行以及第 3 和第
                                                           4 列界定的区域
>> subplot(2,2,2),imshow(A),title('显示部分区域')        % 显示图像部分区域
% 将tif图像转换为jpg图像格式,设置压缩文件的质量为5,质量较低,压缩率较高
>> imwrite(X,map,'canoe.jpg', 'Quality',5);
>> B=imread('canoe.jpg');                                % 读取jpg图像
>> subplot(2,2,3),imshow(B),title('转换格式后的图像')    % 显示jpg图像
>> imwrite(X,map,'canoe.gif','BackgroundColor',5);       % 将图像转换为gif图像格式,降低图像分辨率
>> C=imread('canoe.gif');                                % 读取图像数据
>> subplot(2,2,4),imshow(C),title('降低分辨率')          % 显示图像
运行结果如下图所示:


图 3 显示图片

相关文章