主要内容

rgb2ind

转换RGB图像到索引图像

描述

例子

X提出= rgb2ind(RGB将RGB图像转换为索引图像X与相关色图提出采用最小方差量化量化的颜色和抖动。

X提出= rgb2ind(RGB托尔将RGB图像转换为使用带公差的统一量化的索引图像托尔和犹豫不决。

X= rgb2ind (RGBinmap将RGB图像转换为使用具有指定色度的逆色度算法的索引图像inmap和犹豫不决。

___= rgb2ind (___犹豫不决启用或禁用抖动。

例子

全部折叠

阅读和显示一个真彩色uint8一个星云的JPEG图像。

RGB = imread(“ngc6543a.jpg”);图imagesc(RGB)轴图像变焦(4)

图中包含一个轴对象。axis对象包含一个image类型的对象。

将RGB转换为32种颜色的索引图像。

[IND,map] = rgb2ind(RGB,32);图imagesc(IND) colormap(map)轴图像变焦(4)

图中包含一个轴对象。axis对象包含一个image类型的对象。

输入参数

全部折叠

RGB映像,指定为——- - - - - -n3数组。

数据类型:||uint8|uint16

用于最小方差量化的量化颜色数,指定为小于或等于65,536的正整数。返回的颜色图提出或者颜色更少。

用于均匀量化的公差,指定为范围[0,1]中的一个数字。返回的颜色图提出(地板(1 / tol) + 1) ^ 3或者颜色更少。

输入颜色映射,指定为c-by-3矩阵,值范围为[0,1]。每行inmap是一个三元素RGB三元组,它指定了颜色图中单一颜色的红色、绿色和蓝色组件。颜色地图最多有65,536种颜色。

数据类型:

执行抖动,指定为“犹豫”“nodither”.抖动以空间分辨率为代价增加了颜色分辨率。有关更多信息,请参见高频振动

如果您选择“nodither”,然后rgb2ind不执行抖动。相反,该函数将原始图像中的每种颜色映射到新色图中最接近的颜色。

输出参数

全部折叠

索引图像,返回为——- - - - - -n非负整数矩阵。如果的长度地图小于或等于256,则输出图像是类uint8.否则,输出的图像是类uint16.的值0在输出数组中X对应于颜色图中的第一个颜色。

请注意

图像中的值X颜色图中有索引吗地图并不宜用于数学处理,如滤波运算。

数据类型:uint8|uint16

返回的Colormapc-by-3矩阵,值范围为[0,1]。每行提出是一个三元素RGB三元组,它指定了颜色图中单一颜色的红色、绿色和蓝色组件。颜色地图最多有65,536种颜色。

数据类型:

算法

  • 统一量化-如果您指定托尔,然后rgb2ind使用统一量化来转换图像。均匀量化将RGB颜色立方体切割成长度更小的立方体托尔.例如,如果你指定一个托尔,则立方体的边是RGB立方体长度的十分之一。小立方体的总数为:

    T = (1/tol)+1)^3

    每个立方体代表输出图像中的一种颜色。因此,t是颜色映射的最大长度。rgb2ind删除任何没有出现在输入图像中的颜色,因此实际的配色图可以小于t

  • 最小方差量化-如果你指定,然后rgb2ind使用最小方差量化。最小方差量化将RGB颜色立方体切割成不同大小的更小的盒子(不一定是立方体),这取决于颜色在图像中的分布方式。如果输入图像实际使用的颜色比指定的数量少,那么输出配色图也会更小。

  • 逆色相-如果你指定了一个输入色相inmap,然后rgb2ind使用颜色映射。逆颜色映射算法将指定的颜色映射量化为每个颜色组件32个不同的级别。然后,对于输入图像中的每个像素,找到量子化色图中最接近的颜色。

参考文献

[1] Spencer W. Thomas,“高效逆彩色地图计算”,图形宝石II(詹姆斯·阿沃主编),学术出版社:波士顿,1991年。(包括源代码)

版本历史

R2006a之前介绍