2

我正在阅读RGB2IND函数的文档,发现它使用Uniform QuantizationMinimum Variance QuantizationInverse Colormap,尽管我不太明白这些参数如何适合给定的算法。

是否有任何解释语言(MATLAB、JavaScript、Python)的代码示例可以准确地演示此函数在此语法中的工作方式?

[X,map] = rgb2ind(RGB,n);
4

1 回答 1

6

正如文档页面所说,这取决于您使用哪种形式的函数:

  • [X,map] = rgb2ind(RGB,n):如果您指定颜色的数量作为输入,这将使用最小方差量化来构建具有最多n颜色的索引图像

  • [X,map] = rgb2ind(RGB,tol):如果您指定一个容差值作为输入,它会使用统一量化来构建具有最多(floor(1/tol)+1)^3颜色的索引图像

  • X = rgb2ind(RGB,map):如果您指定一个颜色图作为输入,它将使用逆颜色图算法来构建映射到指定的索引图像map

您总是可以自己阅读源代码 ( edit rgb2ind)


以下示例展示了如何使用所有形式的函数:

%% some truecolor image
RGB = imread('pears.png');
imshow(RGB)

%% 16 colors
[X,map] = rgb2ind(RGB, 16);
imshow(X,map)

%% 0.15 tolerance, no dithering
[X,map] = rgb2ind(RGB, 0.15, 'nodither');
imshow(X,map)

%% use a pinkish colormap with 32 colors
map = pink(32);
X = rgb2ind(RGB, map);
imshow(X,map)
于 2013-09-16T03:52:58.070 回答