其他分享
首页 > 其他分享> > Matlab中rgb2ind函数用法

Matlab中rgb2ind函数用法

作者:互联网

目录

rgb2ind将 RGB 图像转换为索引图像

语法

说明

示例

将 RGB 图像转换为索引图像

输入参数

输出参数

算法

参考


rgb2ind将 RGB 图像转换为索引图像

语法

[X,cmap] = rgb2ind(RGB,Q)

[X,cmap] = rgb2ind(RGB,tol)

X = rgb2ind(RGB,inmap)

___ = rgb2ind(___,dithering)

说明

[X,cmap] = rgb2ind(RGB,Q) 使用具有 Q 种量化颜色的最小方差量化法并加入抖动,将 RGB 图像转换为索引图像 X,关联颜色图为 cmap

[X,cmap] = rgb2ind(RGB,tol) 使用均匀量化法并加入抖动,将 RGB 图像转换为索引图像,容差为 tol

X = rgb2ind(RGB,inmap) 使用逆颜色图算法并加入抖动,将 RGB 图像转换为索引图像,指定的颜色图为 inmap

___ = rgb2ind(___,dithering) 启用或禁用抖动。

示例

将 RGB 图像转换为索引图像

读取和显示星云的真彩色 uint8 JPEG 图像。

RGB = imread('ngc6543a.jpg');
figure
imagesc(RGB)
axis image
zoom(4)

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

[IND,map] = rgb2ind(RGB,32);
figure
imagesc(IND)
colormap(map)
axis image
zoom(4)

输入参数

RGB - RGB 图像
m×n×3 数组

RGB 图像,指定为 m×n×3 数组。

数据类型: single | double | uint8 | uint16

Q - 量化颜色的数量
正整数

最小方差量化法所用的量化颜色的数量,指定为小于或等于 65536 的正整数。返回的颜色图cmap包含 Q 种或更少的颜色。

tol - 容差
范围 [0, 1] 内的数字

均匀量化法所用的容差,指定为范围 [0, 1] 内的数字。返回的颜色图cmap包含 (floor(1/tol)+1)^3 种或更少的颜色。

inmap - 输入颜色图
c×3 的矩阵

输入颜色图,指定为由范围 [0, 1] 内的值组成的 c×3 矩阵。inmap 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。该颜色图最多有 65536 种颜色。

数据类型: double

dithering - 执行抖动
'dither' (默认) | 'nodither'

执行抖动,指定为 'dither' 或 'nodither'。抖动以损失空间分辨率为代价来提高颜色分辨率。如果选择 'nodither',则 rgb2ind 不执行抖动。在这种情况下,函数将原始图像中的每种颜色映射到新颜色图中最接近的颜色。

输出参数

X - 索引图像
由非负整数组成的 m×n 矩阵

索引图像,返回由非负整数组成的 m×n 矩阵。如果 map 的长度小于或等于 256,则输出图像可以属于 uint8 类。否则,输出图像可以属于 uint16 类。输出数组 X 中的值 0 对应于颜色图中的第一个颜色。

注意

图像 X 中的值是颜色图 map 的索引且不应该用于数学处理(例如过滤运算)。

数据类型: uint8 | uint16

cmap - 颜色图
c×3 的矩阵

颜色图,返回为由范围 [0, 1] 内的值组成的 c×3 矩阵。cmap 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。该颜色图最多有 65536 种颜色。

数据类型: double

算法

参考

[1] Spencer W. Thomas, "Efficient Inverse Color Map Computation", Graphics Gems II, (ed. James Arvo), Academic Press: Boston. 1991. (includes source code)

标签:颜色,cmap,用法,RGB,rgb2ind,Matlab,图像,量化
来源: https://blog.csdn.net/jk_101/article/details/111955964