转换RGB图像到索引图像
[X,地图]= rgb2ind (RGB, n)
X = rgb2ind(RGB, map)
[X,map] = rgb2ind(RGB, tol)
(___) = rgb2ind (___dither_option)
[X,地图]= rgb2ind (RGB, n)
将RGB图像转换为索引图像X
使用最小方差量化和抖动。地图
包含最多n
颜色。n
必须小于或等于65,536。
X = rgb2ind(RGB, map)
将RGB图像转换为索引图像X
与colormap地图
使用逆色映射算法和抖动。大小(图1)
必须小于或等于65,536。
[X,map] = rgb2ind(RGB, tol)
将RGB图像转换为索引图像X
使用均匀量子化和抖动。地图
包含最多(地板(1 / tol) + 1) ^ 3
颜色。托尔
必须在0.0和1.0之间。
(___) = rgb2ind (___dither_option)
启用或禁用抖动。dither_option
可以是这些值中的一个。
“犹豫” (默认) |
抖动,如果有必要,以牺牲空间分辨率来获得更好的颜色分辨率 |
“nodither” |
将原始图像中的每一种颜色映射为新映射中最近的颜色。不进行抖动。 |
结果图像中的值X
索引是到颜色地图吗地图
而不应用于数学处理,如滤波操作。
输入图像可以是类uint8
,uint16
,单
,或双
。如果地图
当小于或等于256时,输出图像的类是什么uint8
。否则,输出图像为ofuint16
。
的值0
在输出数组中X
对应于colormap中的第一个颜色。
如果您指定托尔
,rgb2ind
使用统一量化转换图像。这种方法涉及到把RGB颜色立方体切割成更小的立方体长度托尔
。
如果您指定n
,rgb2ind
使用最小方差量化。这种方法包括将RGB颜色立方体切割成不同大小的更小的盒子(不一定是立方体),这取决于颜色在图像中的分布方式。如果输入图像实际使用的颜色比您指定的数字更少,则输出的colormap也会更小。
如果您指定地图
,rgb2ind
使用colormap映射,其中包括查找颜色地图
最符合RGB图像的颜色。
均匀量化-均匀量化将RGB颜色立方体切割成更小的长度立方体托尔
。例如,如果你指定a托尔
当为0.1时,立方体的边是RGB立方体长度的十分之一。小立方体的总数为:
n =(地板(1 / tol) + 1) ^ 3
每个立方体在输出图像中表示一种颜色。因此,colormap的最大长度为n
。rgb2ind
删除了输入图像中没有出现的任何颜色,因此实际的colormap可以比n
。
最小方差量化-最小方差量化将RGB颜色立方体切割成不同大小的更小的盒子(不一定是立方体),取决于颜色在图像中是如何分布的。如果输入图像实际使用的颜色比指定的数字更少,则输出的colormap也会更小。
逆颜色映射算法将指定的颜色映射量化为每个颜色组件的32个不同的级别。然后,对于输入图像中的每个像素,在量化的色彩映射中找到最接近的颜色。
王建民,“有效的反色地图计算”,《图形瑰宝》,北京:科学出版社,1991。(包括源代码)