【发布时间】:2010-11-01 09:15:01
【问题描述】:
我正在研究一个图像处理链,它通过颜色和轮廓分离单个对象,然后计算该对象的 y 位置。
如何使用 OpenCV 计算轮廓或区域的中心?
Opencv 链接:
【问题讨论】:
标签: python image-processing opencv contour
我正在研究一个图像处理链,它通过颜色和轮廓分离单个对象,然后计算该对象的 y 位置。
如何使用 OpenCV 计算轮廓或区域的中心?
Opencv 链接:
【问题讨论】:
标签: python image-processing opencv contour
您可以通过首先计算Moments 来获得y 方向的质心。然后质心由yc = M01 / M00 给出,其中 M01 和 M00 是 Moments 调用返回的结构中的字段。
如果您只想要边界矩形的中心,使用BoundingRect 也很容易。这将为您返回一个 CvRect,您可以只取一半的高度。
如果这还不够精确,请告诉我,我有示例代码可以为您挖掘。
【讨论】:
我不完全了解 OpenCV 是什么,但我建议这样做:
所选像素簇在某一点具有最大宽度 - w - 所以可以说该区域有 w 个垂直像素列。现在我将根据列包含的像素数对列进行加权,并使用这些列权重来确定水平中心点。
同样的算法也适用于 X 中心。
【讨论】: