在MATLAB软件中有一个专门的图像处理工具箱(Image Processing Toolbox),利用该工具箱,我们完成绝大多数的图像处理工作。
MATLAB支持四种图像类型,即RGB图像、索引图像、灰度图像和二值图像。实质上,MATLAB还支持另一种图像类型,即多帧图像阵列,其是MATLAB视频处理和图像处理的桥梁。视频其实就是大量图片的有序排列,只要每张图片播放速度够快,我们就可以感觉到是视频播放。
在MATLAB中,数字图像都是用一个矩阵来表示的,这个矩阵可能是二维、三维或者多维的。
用下面的一段代码来说明四种图像类型的差异:
clc;clear all;close all
set(0,'defaultfigurecolor','w')
RGB=imread('c:\ir_5.png');%从本地读入彩色图像
IND=rgb2ind(RGB,128);%变换为索引图像
GRAY=rgb2gray(RGB);%变换为灰度图像
BW=im2bw(RGB);%变换为二值图像
figure(1);imshow(RGB);%显示图像
figure(2);imshow(IND);
figure(3);imshow(GRAY);
figure(4);imshow(BW);
MAX_RGB=max(max(max(RGB,[],3)));%查看RGB图像中的最大值
MIN_RGB=min(min(min(RGB,[],3)));%查看RGB图像中的最小值
RGB图像
索引图像
灰度图像
二值图像
变量的大小及范围
上面的实例中可以看出:
RGB图像是以一个M*N*[R G B]的三维矩阵来表示的,当矩阵中元素为unit8类型,元素范围为[0 255];
索引图像是以一个M*N的二维矩阵来表示的,当矩阵中元素为unit8类型,元素范围为[0 p-1],p表示RGB转换为索引图像时所设置的图像颜色的个数(上面的实例中,我们的p设置为128,所以元素范围为[0 127]);
灰度图像是以一个M*N的二维矩阵来表示的,当矩阵中元素为unit8类型,元素范围为[0 255];
二值图像是以一个M*N的二维矩阵来表示的,其矩阵中元素为logical类型,元素只有可能是0或1,是一种逻辑矩阵,0代表黑色,1代表白色;
这只是基于最基本的方面,对上述四种图像类型作的解释。其实,它们还有更深层次的差异。如果大家感兴趣,可以自己查找资料了解。
最后,感谢大家的耐心阅读!