Matlab中rgb2ind函数用法

目录

语法

说明

示例

将 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 图像,指定为 m×n×3 数组。

注意

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

算法

  • 均匀量化 - 如果您指定tol,则 rgb2ind使用均匀量化来转换图像。均匀量化将 RGB 颜色立方体削减为较小的 tol 长度的立方体。例如,如果指定 tol 为 0.1,则立方体的边缘为 RGB 立方体长度的十分之一。小立方体总数为:

    t = (floor(1/tol)+1)^3
    

    每个立方体表示输出图像中的一种颜色。因此,t为颜色图的最大长度。rgb2ind 会删除不显示在输入图像中的任何颜色,因此实际颜色图可能小于 t

  • 最小方差量化 - 如果您指定Q,则 rgb2ind 使用最小方差量化。最小方差量化将 RGB 颜色立方体削减为不同大小的较小块(未必是立方体),具体取决于这些颜色在图像中的分布情况。如果输入图像实际使用的颜色数少于指定的数量,则输出颜色图也会变小。

  • 逆颜色图 - 如果您指定输入颜色图inmap,则 rgb2ind 使用颜色图映射。逆颜色图算法可将指定颜色图量化为每个颜色分量 32 个不同色阶。然后,对于输入图像中的每个像素,查找量化的颜色图中最接近的颜色。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值