在RGB或HSV颜色空间上进行k-means聚类?

7
我想对一张图片进行划分,但有人告诉我使用RGB的欧几里得距离并不如HSV好用。但是对于HSV来说,由于不是所有的H、S、V值都处于相同的范围内,所以我需要对其进行归一化处理。对于归一化后的HSV进行聚类是一个好主意吗?如果是,那么我应该如何在HSV范围内进行归一化呢?
谢谢。
3个回答

9
作为HSV成分,色相、饱和度和灰度强度表示像素的颜色,它们在颜色方面不相互关联,每个成分都有其定义该像素属性的作用,例如色相将提供颜色信息(在其他条件下表示波长),饱和度始终显示与该颜色混合的白色占多少百分比,而值仅是该颜色的大小(换句话说是强度),因此HSV空间的所有成分均不遵循相同的刻度以表示值,即使色相可以沿刻度取负(因为这些是循环值),但强度(V)永远不会变为负数,因此规范化对于聚类没有太大帮助,更好的方法是如果要进行颜色聚类,则只应在色相上应用聚类。

现在为什么欧氏距离不适用于多通道聚类呢?因为它沿平均值的分布是球形(对于2D圆形),所以如果它不能区分(147,175,208)和(208,175,147),两者都将距离中心相同,最好使用马氏距离进行距离计算,因为它使用组件的协方差矩阵,使得该距离分布沿平均值的抛物线。

因此,如果要在RGB颜色空间中进行颜色分割,请使用马氏距离(但它在计算上比较耗时,会减慢聚类过程),如果要在HSV颜色空间中进行聚类,请使用色相进行颜色分割,然后使用V来微调分割输出。

希望这能有所帮助。谢谢!


7

Hue是循环的。

在这种数据上不要使用平均值(因此,也不要使用k-means)。


5
首先,您需要了解为什么在图像分割中HSV比RGB更受欢迎。HSV将颜色信息(色度)和图像强度或亮度级别(亮度)分离,如果您想进行图像分割,则非常有用。例如,如果您尝试使用RGB方法处理以海洋为背景的照片,则海洋中占主导地位的RGB分量很可能不是蓝色(通常是由于阴影或照明)。但是,如果您使用HSV,则可以分离值,并且只使用饱和度和色调构建直方图或阈值规则。
有一篇真正好的论文比较了RGB和HSV方法,我认为这将是一个不错的阅读材料 -> http://www.cse.msu.edu/~pramanik/research/papers/2002Papers/icip.hsv.pdf

非常感谢您的答复。在进行聚类时,是否应该对HSV进行归一化,您能否发表一些意见? - nobody
@wudanao 很抱歉回复晚了,我想我只会从HSV图像中获取色调和饱和度,并创建一个直方图,然后在将其与另一幅图像进行比较之前对其进行归一化处理。 - Niko Adrianus Yuwono

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接