小编tyr*_*675的帖子

如何找到一组轮廓的质心?

我有一组小圆圈的图像。每个圆都是一个单独的轮廓。我需要在不使用图像过滤或形态学的情况下找到整个组的质心。

洞

我的想法是将所有圆形轮廓组合成一个巨大的轮廓,然后使用 cv2 矩来找到质心,但这是不准确的。这是我正在使用的代码(我可以成功找到每个孔作为轮廓,因此我将该代码保留在下面的代码片段之外:

找到所有孔轮廓后的图像: 在此输入图像描述

# holes is a list of all hole contours
combined_conts = np.concatenate(holes)

cont_moment = cv2.moments(combined_conts)
cX = int(cont_moment["m10"] / cont_moment["m00"])
cY = int(cont_moment["m01"] / cont_moment["m00"])
Run Code Online (Sandbox Code Playgroud)

我希望 cX 和 cY 坐标靠近该组孔的中心,但它们甚至不接近(它们靠近该组的右上角)。我怀疑 cv2.moments 不喜欢轮廓的组合方式?有没有更好的方法将轮廓合并为一个?

当孔组合成一个轮廓时,图像如下所示: 在此输入图像描述

python opencv

0
推荐指数
1
解决办法
69
查看次数

标签 统计

opencv ×1

python ×1