Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

imapprox

通过减少颜色数量来近似处理索引图像

说明

示例

[Y,newmap] = imapprox(X,map,Q) 使用具有 Q 种量化颜色的最小方差量化法来近似表示索引图像 X 和关联颜色图 map 中的颜色。imapprox 返回索引图像 Y 和颜色图 newmap

[Y,newmap] = imapprox(X,map,tol) 使用容差为 tol 的均匀量化法来近似表示索引图像 X 和关联颜色图 map 中的颜色。

Y = imapprox(X,map,inmap) 使用基于颜色图 inmap 的逆颜色图映射法来近似表示索引图像 X 和关联颜色图 map 中的颜色。逆颜色图算法会在 inmap 中查找与 map 中的颜色最匹配的颜色。

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

示例

全部折叠

加载狒狒面部的索引图像。使用关联的颜色图 map(包含 220 种颜色)显示图像 X

figure
load mandrill
image(X)
colormap(map)
axis off         
axis image

Figure contains an axes object. The axes object contains an object of type image.

通过生成新图像 Y 及其关联的颜色图 newmap,将索引图像中的颜色数量从 220 种减少到仅有 16 种颜色。

figure
[Y,newmap] = imapprox(X,map,16);
image(Y)
colormap(newmap)
axis off       
axis image

Figure contains an axes object. The axes object contains an object of type image.

输入参数

全部折叠

具有多种颜色的索引图像,指定为由非负整数组成的 m×n 矩阵。

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

与索引图像 X 相关联的具有多种颜色的颜色图,指定为由范围 [0, 1] 内的值组成的 d×3 矩阵。map 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。

数据类型: double

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

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

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

数据类型: double

执行抖动,指定为 'dither''nodither'。抖动以损失空间分辨率为代价来提高颜色分辨率。有关详细信息,请参阅 dither

如果选择 'nodither',则 imapprox 不执行抖动。在这种情况下,函数将原始图像中的每种颜色映射到新颜色图中最接近的颜色。

输出参数

全部折叠

具有较少颜色的索引图像,返回为由正整数组成的 m×n 矩阵。如果 newmap(或 immap,如有指定)的长度小于或等于 256,则输出图像属于 uint8 类。否则,输出图像属于 double 类。

数据类型: double | uint8

与输出索引图像 Y 相关联的具有较少颜色的颜色图,返回为由范围 [0, 1] 内的值组成的 c×3 矩阵。newmap 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。该颜色图最多有 65536 种颜色。

数据类型: double

算法

imapprox 使用 rgb2ind 创建一个使用较少颜色的新颜色图。有关量化法和逆颜色图映射法的详细信息,请参阅 rgb2ind算法

版本历史记录

在 R2006a 之前推出

另请参阅

| |