MATLAB(Matrix Laboratory)是一种常用的数学工具软件,MATLAB以矩阵运算为核心,为图像处理提供了高效的数据处理能力。图像处理中的许多操作都可以转化为矩阵运算,从而利用MATLAB的矩阵运算能力进行优化和加速。在图像处理方面,MATLAB支持多种图像格式的读入和处理。以下是MATLAB能够通过内置的imread函数读入以下的常见数字图像格式:
- JPEG(Joint Photographic Experts Group):一种称为联合图像专家组的图像压缩格式,广泛应用于数码照片。MATLAB中的imread函数可以读取JPEG格式的图像。
A = imread('ngc6543a.jpg'); %imread 返回 650×600×3 数组 A。
image(A) %显示图像
>> whos %列出工作区中的变量及大小和类型
imfinfo('ngc6543a.jpg') %显示有关图形文件的信息
从上面可以看出,该图像格式(Format)为jpg,位深(BitDepth)为24位,颜色类型为真彩色(truecolor)等信息。
2. BMP(Windows Bitmap):Windows操作系统中最早出现的图像格式之一,存储的是无压缩位图。MATLAB的imread函数也支持TIFF格式的图像读取。
>> J=imread('lena.bmp');%读入lena.bmp图像
>> figure,imshow(J)
3. PNG(Portable Network Graphics):一种支持透明度的无损压缩格式,适合用于网页和界面设计。MATLAB能够读入PNG格式的图像。
I = imread('rice.png');%读入一个名为rice.png
的灰度图像,并将其存储在变量I
中 imshow(I) ;%显示图像 >> whos I
由上面可知,rice.png图像行列数均为256,数据类型为无符号的8位整型,每个像素占用1个字节(8位),总共占用字节为65536。
4.TIFF(Tagged Image File Format):一种灵活的图像文件格式,支持多种图像数据的存储,包括非压缩图像和压缩图像。MATLAB的imread函数也支持TIFF格式的图像读取。
>> figure,imshow(J)
>> K=imread('moon.tif');
>> figure('Name','moon.tif图像','NumberTitle','off'),imshow(K);
>> whos K
[X,cmap] = imread('corn.tif');
>> figure,imshow(X),title('索引矩阵图像');
>> Im = ind2rgb(X,map); %把索引图像转换为RGB彩色图像
>> figure('Name','通过ind2rgb把corn.tif索引图像转换为彩色图像','NumberTitle','off'),imshow(Im);
5.GIF(Graphics Interchange Format):一种支持动画和透明度的图像格式,广泛应用于网页和社交媒体。MATLAB的imread函数也支持TIFF格式的图像读取。