MATLAB图像处理–图像的介绍及转换
-
索引图像介绍
索引图像包括一个数据矩阵X,和一个颜色映像矩阵map。其中map是一个包含三列,若干行的数据阵列,其中每个元素的值均为[0,1]之间的双精度数据,map矩阵的每一行分别表示红,绿,蓝颜色值。颜色图是按照图像中的颜色值进行排序后的数组;简单地说就是像素颜色由数据矩阵X作为索引指向矩阵map进行索引,如值2就指向矩阵map中的第二行,即对于每个像素,图像矩阵包含一个值,这个值就是颜色图数组中的索引。
注意:
上述为双精度行,若图像矩阵为无符号8位整数类型,且有一个偏移量,即第0点的值对应于颜色图的第一行,第1点的值对应于颜色图的第二行,以此类推。
图例说明:
-
RGB图像介绍
不同于索引图像的二维表示,RGB图像是三维表示的。RGB图像的色度值直接存在图像数组中,而不是存放在颜色图中,一幅RGB图像的存储形式为MxNx3,其中每一个彩色像素都在特定空间位置的彩色图像中对应红绿蓝3个分量。分量图像的数据类型决定了它们的取值范围。若一幅RGB图像的数据类型是double,则分量的取值范围为[0,1],若为uint8,则取值范围为[0,255],若为uint16,则取值范围为[0,65535]。 -
图像的转换
J为输出图像,I为输入图像。
J=ind2gray(X,map) %%索引转换为灰度图像
J=ind2rgb(X,map) %%索引转换为RGB图像
J=rgb2gray(I) %%rgb转换为灰度图像
[X,map]=rgb2ind(I,12) %%12为调色板的大小为12行,越大越清晰,RGB转换为索引图像
J=im2bw(I) %%将图像转换为二值图像
J=im2bw(I,0.4) %%0.4位阈值,大于0.4为1,小于则为0.
J=gray2ind(I) %%灰度图像转换为索引图像,也可表示为grayslice
J=mat2gray(I) %%将数据矩阵转换为灰度图像