matlab - 在matlab中对颜色进行排序

标签 matlab sorting colors rgb

我在 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)

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)

recovered_colormap

关于matlab - 在matlab中对颜色进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245842/

相关文章:

c++ - 排序函数替换值时出现问题

Android如何获取LinearLayout的颜色 "style="@android :style/ButtonBar""

android - 了解 Android 上的颜色(六个字符)

matlab - 如何将输入安排为matlab的Extrinsics()函数的对象?

matlab - opencv和matlab之间的像素值不同

Javascript 自然排序对象

css - 当我将鼠标悬停在表头 CSS 上时如何更改文本的颜色

windows - 如何在 MATLAB 中访问 'Program Files' 文件夹

matlab - 为什么 Octave 或 Matlab 不使用 %(百分比符号)作为模运算符

c - 为什么在将反向排序数组作为输入时出现段错误?