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