错误的质心x方向计算(openCV Python)

时间:2014-11-27 13:02:54

标签: python opencv center

我尝试使用openCV和Python计算二进制图像中对象的质心。我使用cv2.findContours和cv2.moments但我总是得到一个错误的x方向。它始终是几个像素的正偏移,我不明白为什么。我想我的确就像在openCV doc中那样。

这是一个例子。绿色是cv2.findContours找到的轮廓。红色计算的质心。

enter image description here

我的代码是:

import cv2
import numpy as np

img = cv2.imread('C:/Users/Arno/Documents/Masterarbeit/Matlab/rect2.png', 0)
cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
contours = cv2.findContours(img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cnt1 = contours[0]
cnt2 = contours[1]
cv2.drawContours(cimg, cnt2, -1, (0, 255, 0), 2)

M = cv2.moments(cnt1)
cx = int(M['m10']/M['m00'])
cy = int(M['m01']/M['m00'])

cv2.circle(cimg, (cx, cy), 1, (0, 0, 255), 2)
cv2.imshow('center of mass', cimg)

0 个答案:

没有答案