gpt4 book ai didi

matlab - 按某些颜色的像素对 jet 颜色图进行分类

转载 作者:行者123 更新时间:2023-12-02 06:39:30 33 4
gpt4 key购买 nike

数据

enter image description here

我想通过计算HSV以下像素来对其进行分类(色相-饱和度-亮度)

  • 深蓝色
  • 蓝色
  • 绿色
  • 黄色
  • 红色

显示没有 HSV 的 RGB channel ( source )

x = linspace(0,1, size(Map)(1));
figure(Fignr)
lw = 4;
plot( x, Map(:,1),'color',[1,0,0],'linewidth',lw,
x, Map(:,2),'color',[0,1,0],'linewidth',lw,
x, Map(:,3),'color',[0,0,1],'linewidth',lw,
x, mean(Map,2),'color',[0.7,0.7,0.7],'o')
xlabel 'fraction'
ylabel 'intensity'
end

示例 showRGBchannels(1,summer(500)) 给出

enter image description here

这只是一个映射的示例,您可以在一个图形中看到不同颜色红色、绿色和蓝色的分数。但是,颜色图也必须扩展到黄色、绿色和深蓝色。

你可以假设

  • 深蓝色的值为 [0, 0.2)
  • 蓝色[0.2, 0.4)
  • 绿色 [0.4, 0.6)
  • 黄色[0.6, 0.8)
  • 红色[0.8, 1.0)

但是,我认为这不是一个好的选择,因为 HSV 在这里是一个不错的选择。我还建议使用彩虹以外的其他颜色进行可视化(连续红蓝,出版物 here )。

有许多实现来分离颜色以及关于似乎使用哪种颜色的争论。让我们重点关注 RGB 颜色及其分离。可能通过 HSV 或任何其他未提及的适当方法。

如何通过 HSV 对适当的像素(即第一张图片的颜色)进行分类和计数?有相关类(class)和/或论文吗?

最佳答案

阅读前请注意。您似乎将颜色图的选择与颜色分割混淆了。需要注意的是:

  • 色彩图:用于用户友好的可视化。您不使用颜色图的颜色作为数据,而是使用原始数据。然而,例如,人眼看到的彩色图片比灰度图片更友好。因此,有不同的方法可以通过选择不同的可视化颜色来可视化数据。如果您的数据是单值的(例如您描述的数字表示 z=f(x,y),则使用 z 进行数据分析,而不是 z 的颜色表示)。
  • 颜色表示:如果您有一些表示颜色的数据(例如土 bean 的图片),那么您可以用不同的颜色空间来描述这些数据,例如 RGB、HSB、Cie Lab ,...这是描述相同数据的方法,有些对某些数学计算有用,有些则用于其他(即 HSV 适合分割颜色,而 CIElab 旨在查找与人眼相似的颜色)
<小时/>

编辑:关于使用颜色图的额外讨论

作为一名从事医学成像工作的学生,我可以肯定颜色不用于分割,而是数据(通常是单 channel )本身的数值。使用不同的颜色图仅用于可视化目的。

这里有各种各样的观点,但通常集中在:jet 颜色图不够清晰(而且它是使用最广泛的!)。例如,Moreland 颜色图依赖于在可视化中具有清晰的中点,因此用户可以清楚地看到哪些值高于平均值,哪些值低于平均值。

甚至 Matlab 也开始同意停止使用 jet 颜色图的想法,因为 Matlab 的默认颜色图不再是 jet (R2014b)。 Read more here .

另一种观点是 jet 颜色图不能很好地转换为灰度图。 Read more here.

但是,请注意,所有这些讨论绝对与颜色的描述方式无关。您可以使用 RGB、HSV、CIE Lab* 或您想要的任何其他颜色表示来描述所讨论的任何颜色图。

<小时/>

原始答案

所以,我不会给你代码(你也可以在 SO 中找到),我只会举一个小例子来说明 HSV 空间如何工作。正如您所看到的,在 RGB 中,通过数值来分离颜色似乎是不可能的。因此需要一些其他色彩空间。

最常见的方法之一是使用 HSV 空间。

enter image description here

如图所示,这个空间有 3 个值。色相(角度)、饱和度和明度。在这三个坐标系中,它们创建了一个圆柱坐标系,该坐标系将您指向特定的颜色。从图中您可以注意到,虽然 S 和 V 改变了“亮度”和“颜色量”之类的参数,但 HUE 是唯一真正改变颜色彩度的参数。因此,所有红色都处于相同的 H 范围内,与 S 和 V 的值无关。

在下图中看到这个圆柱体的切片:

enter image description here

我们可以从该图像得出结论,所有黄色值都在 H 30-90 度左右。

这些信息和Matlab函数的巧妙使用,例如rgb2hsv应该会让你朝着正确的方向前进。

提示:您想要对红色值的 360-0 事务执行某些操作。

祝你好运!

<小时/>

关于matlab - 按某些颜色的像素对 jet 颜色图进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28685724/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com