我有一组小圆圈的图像。每个圆都是一个单独的轮廓。我需要在不使用图像过滤或形态学的情况下找到整个组的质心。
我的想法是将所有圆形轮廓组合成一个巨大的轮廓,然后使用 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 不喜欢轮廓的组合方式?有没有更好的方法将轮廓合并为一个?