4

我正在研究一个图像处理链,它通过颜色和轮廓分离单个对象,然后计算该对象的 y 位置。

如何使用 OpenCV 计算轮廓或区域的中心?

Opencv 链接:

4

2 回答 2

10

您可以通过首先计算Moments来获得 y 方向的质心。然后质心由 给出yc = M01 / M00,其中 M01 和 M00 是 Moments 调用返回的结构中的字段。

如果您只想要边界矩形的中心,那么使用BoundingRect也很容易。这将为您返回一个 CvRect,您可以只取一半的高度。

如果这还不够精确,请告诉我,我在某处可以为您挖掘示例代码。

于 2009-06-09T11:31:19.190 回答
-2

我不完全知道 OpenCV 是什么,但我建议这样做:

选定的像素簇在一个点具有最大宽度 - w - 所以可以说该区域有 w 个垂直像素列。现在我将根据列包含的像素数对列进行加权,并使用这些列权重来确定水平中心点。

同样的算法也适用于 X 中心。

于 2009-06-09T09:06:02.790 回答