在像素簇中查找质心

Find centroid in a pixels cluster

如何计算由像素组成的簇的质心?

我用红色、蓝色和绿色值表示像素(例如,pixel(116 133 55))。

质心应该是簇中实例的平均值,但是如何计算像素之间的平均值

[我试图计算每种颜色的平均值(质心["RED"]=sum_red_pixel_values/number 像素等等)但是它给出了错误的结果]

如果有任何帮助,我正在使用欧氏距离函数。

sum_red_pixel_values/number of pixels 将为您提供平均红色强度。如果你想要质心,你需要找到由像素强度加权的所有像素的平均 x 和 y 位置。

centroid.x = sum(pixel.red * pixel.x) / sum(pixel.red)
centroid.y = sum(pixel.red * pixel.y) / sum(pixel.red)

其中所有像素的总和。

您可以分别计算红绿蓝然后求平均值,但如果您只想要平均值,则对红绿蓝通道进行平均(如果您想要亮度,则可能是加权平均值)会更有效每个像素先 然后 计算质心。