我想分割图像,但有人告诉我RGB的欧几里德距离不如HSV - 但对于HSV,并非所有的H,S,V都是相同的范围,所以我需要将其标准化。将HSV标准化然后进行聚类是一个好主意吗?如果是这样,我应该如何规范HSV量表呢?
由于
答案 0 :(得分:7)
Hue是循环的。
不要对这些数据使用均值(因此,k-means)。
答案 1 :(得分:6)
由于HSV组件表示Hue,饱和度和像素的灰度强度,它们在颜色方面彼此不相关,每个组件在定义该像素的属性方面都有自己的作用,如Hue将为您提供有关颜色(波长在其他方面)饱和度总是显示白色与该颜色混合的百分比,而值只是该颜色的大小(在其他术语强度中),这就是为什么HSV空间的所有组件都不遵循相同比例的表示虽然色调也可以在量表上变为负值(因为这些是循环值),但强度(V)永远不会变为负值,因此归一化无助于聚类太多,更好的想法是你应该只在Hue上应用聚类如果你想做颜色聚类。
现在为什么欧几里得不利于多通道聚类是因为它沿平均值的分布是球形的(对于2D圆形),所以如果它不能在(147,175,208)和(208,175,147)之间产生任何差异,它们将具有相同的距离。中心,它更好地使用马哈拉诺比斯距离进行距离计算,因为它使用了组件的共方差矩阵,使得该距离分布沿平均值抛物线。
所以,如果你想在RGB颜色空间中进行颜色分割,请使用mahalanobis距离(但它会计算量大,因此会减慢聚类过程),如果你想在HSV颜色空间中进行聚类,可以使用Hue进行颜色分割而不是使用V来微调分段输出。
希望它会有所帮助。谢谢
答案 2 :(得分:4)
首先,你需要知道为什么HSV在图像分割中比RGB更加优先。 HSV分离颜色信息(Chroma)和图像强度或亮度级别(Luma),如果您想进行图像分割,这非常有用。例如,如果您尝试将RGB方法用于以海为背景的照片,则海洋中的主要RGB分量很可能不是蓝色(通常是因为阴影或照明)。但是如果使用HSV,则值是分开的,您可以仅使用饱和度和色调来构建直方图或阈值规则。
有一篇非常好的论文比较了RGB和HSV方法,我认为这对你来说是一个很好的阅读 - > http://www.cse.msu.edu/~pramanik/research/papers/2002Papers/icip.hsv.pdf