|
图像操作中常需要对图像的类型进行转换。例如,索引彩色图滤前转换成RGB图,才能使用滤波器进行滤波操作。
(1)图像颜色筛选转换
MATLAB提供dither函数通过筛选算法转换图像类型,该函数的调用格式如下:
- <p>X = dither(RGB, map)</p><p>X = dither(RGB, map, Qm, Qe)</p><p>BW = dither(I)</p>
复制代码
其中,RGB为真彩色图,map为调色板,Qm为沿每个颜色轴反转颜色图的量化(即对于补色各颜色轴)的位数,Qe为颜色空间计算误差的量化位数;如Qe<Qm,则不进行筛选操作;X为得到的索引图。最后一种格式将灰度图I转换为二进制图BW。
(2)灰度图/二进制图转换为索引图
MATLAB提供gray2ind函数将灰度图/二进制图转换成索引图,该函数调用格式为:
- <p>[X, map] = gray2ind(I,n)</p><p>[X, map] = gray2ind(BW,n)</p>
复制代码
其中,I为灰度图,map为调色板矩阵,X索引图,n为灰度级数n,BW为二进制图。
(3)索引图转换为灰度图
MATLAB提供ind2gray函数将索引图转换为灰度图,该函数调用格式为:
其将具有调色板矩阵的索引色图X转换成灰度图I,map为调色板矩阵。
(4)RGB图转换为灰度图
MATLAB提供rgb2gray函数将RGB图转换成灰度图,该函数调用格式为:
- <p>I = rgb2gray(RGB)</p><p>newmap = rgb2gray(map)</p>
复制代码
其中,参数RGB为RGB图,I为灰度图,map和newmap为调色板矩阵。
注意:如果rgb2gray函数输入为RGB图,则图像可以是无符号类型或双精度类型,输出与输入图像类型相同。如果输入为调色板图,则输入和输出的图像均为双精度类型。
(5)RGB图转换为索引图
MATLAB提供rgb2ind函数将RGB图转换成为索引图,该函数调用格式为:
- <p>[X,map] = rgb2ind(RGB, n)</p><p>X = rgb2ind(RGB, map)</p><p>[X,map] = rgb2ind(RGB, tol)</p><p>[...] = rgb2ind(..., dither_option)</p>
复制代码
其中,参数RGB为RGB图;X为索引图;map为调色板矩阵;n为颜色位数;tol为误差,取值范围为0.0~1.0;dither_option设置采用的方法,包括直接转换、均匀量化、最小量化颜色图近似,除直接转换方法外,其他方法在不指定选项nodither时自动进行图像筛选。
(6)索引图转换为RGB图
MATLAB提供使用ind2RGB函数将索引图像转换成真彩图像,该函数调用格式为:
其中,参数RGB为RGB图,X为索引图,map为调色板矩阵。
(7)阈值法从灰度图产生索引图
MATLAB提供grayslice函数通过设定阈值将灰度图转换成索引图,该函数调用格式为:
其中,I为灰度图,n为均匀量化等级数,X为索引图。
(8)将矩阵转换为灰度图像
MATLAB提供mat2gray函数将数据矩阵转换为灰度图像,该函数调用格式为:
- <p>I = mat2gray(A, [amin amax])</p><p>I = mat2gray(A)</p>
复制代码
其中,I为灰度图,A为矩阵;[XmIn XmaX]将数据矩阵X转换为图像I,XmIn对应灰度0(最暗即黑),XmaX对应灰度1(最亮即白),未设置时,则将X矩阵中最小设为XmIn,最大设为XmaX。
|
|