在matlab中排序颜色

pod*_*unk 4 sorting rgb matlab colors

我在260000*3维数组中有不同的RGB值.我想按升序或降序排序这些颜色(无关紧要),以便类似的颜色更接近.最有效的方法是什么?

Amr*_*mro 8

例:

首先我们从常规Jet colormap开始:

%# sample image mapped to Jet colormap
I = repmat(1:100, 100, 1);
C = jet(100);

figure
subplot(211), imagesc(I), colormap(C)
subplot(212), rgbplot(C)
Run Code Online (Sandbox Code Playgroud)

original_colormap

首先,我们改变颜色.然后我们尝试恢复原始的颜色分组(我们通过根据色调和值在HSV颜色空间中进行排序来实现):

%# shuffle colors
C = C(randperm(100), :);

%# rearrage according to HSV colorspace
C = rgb2hsv(C);
C = sortrows(C, [-1 -3 2]);  %# sort first by Hue, then by value
C = hsv2rgb(C);

figure
subplot(211), imagesc(I), colormap(C)
subplot(212), rgbplot(C)
Run Code Online (Sandbox Code Playgroud)

recovered_colormap