我在 260000 * 3 维数组中有不同的 RGB 值。我想按升序或降序(哪个无关紧要)对这些颜色进行排序,以便相似的颜色更接近。最有效的方法是什么?
最佳答案
示例:
首先我们从常规的 Jet 颜色图开始:
%# 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)
首先我们打乱颜色。然后我们尝试恢复原始的颜色分组(我们通过根据色调和值在 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)
关于matlab - 在matlab中对颜色进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245842/