功能
imwrite用於將圖像數據寫入到圖像檔案中。
調用格式
imwrite(A,filename,fmt)
imwrite(...,filename)
imwrite(...,Param1,Val1,Param2,Val2...)
imwrite(f,'filename.jpg','quality',q)
調用格式說明
imwrite(A,filename,fmt)
A是圖像數據, filename是目標圖像名字, fmt是要生成的圖片的格式。
圖像格式有:bmp(1-bit、8-bit和4-bit)、gif(8-bit)、hdf、jpg(或jpeg)(8-bit、12-bit和16-bit)、jp2或jpx、pbm、pcx(8-bit)、gm、png、pnm、ppm、ras、tif(或tiff)、xwd。各種格式支持的圖像位數不一樣, 比如bmp格式不支持16-bit,而png格式支持, 又如gif只支持8-bit格式。
imwrite(X,map,filename,fmt)
如果要存儲一張索引圖像, 需要指定顏色表,這樣在硬碟上生成圖像檔案時指定的顏色表和圖像數據將一起寫入圖像檔案。
imwrite(...,filename)
imwrite(...,Param1,Val1,Param2,Val2...)
另一種常用但只適用於JPEG圖像的imwrite函式語法為
imwrite(f,'filename.jpg','quality',q)
其中q是一個在0-100之間的整數,為圖像質量因數。
相關函式
imread、imfinfo、fread、fwrite
舉例說明
close all; clear; clc;
warning off all;
% 本例子展示如何將一張真彩色jpg格式圖片轉換為灰度圖像、索引圖像、二值圖像
imgrgb = imread('flower.jpg');
imwrite(imgrgb, 'flower.bmp', 'bmp'); % jpg格式轉換為bmp格式
imggray = rgb2gray(imgrgb);
imwrite(imggray, 'flower_grayscale.bmp', 'bmp'); % 存儲為灰度圖像
[imgind, map] = rgb2ind(imgrgb, 256); % 轉換為256色的索引圖像
% 如果轉換為65536色圖像, imwrite函式無法寫入到檔案, 這是因為: 65536色的
% 索引圖像數據類型是uint16(16-bit), 而imwrite函式的bmp檔案格式僅僅支持
% 1-bit, 8-bit, 和 24-bit。png格式支持uint16。
imwrite(imgind, map, 'flower_index.bmp', 'bmp');
imgbw = im2bw(imgrgb, 0.5);
imwrite(imgbw, 'flower_binary.bmp', 'bmp');