许多图像处理作业对图像类型有特定的要求。因此,在进行正式的图像处理之前,需要对图像对象进行相应的格式转换,否则后续的图像处理将会很困难。例如,要过滤索引图像,我们必须首先将其转换为RGB图像。因为直接过滤索引图像的结果是没有意义的。
MATLAB图像处理工具箱提供了四种类型图像(RGB图像、索引图像、灰度图像和二值图像)的转换函数。主要有dither()、gray2ind()、grayslice()、im2bw()、ind2gray()、ind2gray()、mat2gray()、rgb2gray()、rgb2ind()等。本文将介绍上述MATLAB中的一些函数:利用MATLAB中的dither()函数实现图像抖动。该功能通过色彩抖动增强输出图像的色彩分辨率,从而达到图像转换的目的。颜色抖动是改变像素的颜色,使像素的颜色与彩色地图的颜色相似,从而用空间分辨率换取颜色分辨率。
Dither()函数可以将RGB图像转换成索引图像;灰度图像可以转换成二值图像。
dither()函数的调用格式:
X=dither(RGB,map):将真彩色图像RGB按照指定的颜色映射抖动成索引图像,映射颜色数不超过2 ^ 16=65536;
X=dither(RGB,map,Qm,Qe):参数Qm用于指定来自转换后的颜色图的每个颜色轴的量化比特,参数Qe用于指定从颜色空间误差计算的量化比特;默认值为Qm=5,QE=8;如果QmQe,图像转换会出错;
BW=dither(I):将灰度图像I抖动成二值图像BW。
Rgb2gray()函数调用格式:
I=rgb2gray(rgb):将真彩色图像RGB转换为灰度图像I;
gray2ind()函数的调用格式:
[X,map]=gray2ind(I,n):根据指定的灰度等级n,将灰度图像I转换为索引图像X;n的取值范围是1~65536,默认值是64。
[X,map]=gray2ind(BW,n):将二值图像BW按照指定的灰度级n转换为索引图像X;n的默认值是2。
grayslice()函数的调用格式:
X=grayslice(I,n):将灰度图像I均匀量化为n级,然后转换为索引图像X;n的取值范围是1 ~ 255;
这里有一个例子来看看图像转换的效果:
代码:
显示效果:
原象
最后,感谢大家耐心阅读!