python输出矩形中心_如何找到这个矩形的中心点

我试图找到鱼后面的green rectangle的中心点,但我的方法行不通。这是我的代码:#Finding contours (almost always finds those 2 retangles + some noise):

_, conts, hierarchy = cv2.findContours(img_green, cv2.RETR_TREE , cv2.CHAIN_APPROX_SIMPLE)

for cnt in conts:

area = cv2.contourArea(cnt)

#filter noise

if area > 25:

M = cv2.moments(cnt)

x1, y1, w, h = cv2.boundingRect(cnt)

x2 = x1 + w # (x1, y1) = top-left vertex

y2 = y1 + h # (x2, y2) = bottom-right vertex

cy = int(M['m01']/M['m00']) # (cx, cy) = rect center

cx = int(M['m10']/M['m00'])

rect = cv2.rectangle(green_bar_win, (x1, y1), (x2, y2), (255,0,0), 2)

center = cv2.circle(green_bar_win, (cx, cy), 2, (0,0,255), 4)

如你所见,它找到了矩形的轮廓,但在鱼所在的地方被分割,形成了两个不同的形状。它也找到这两个形状的中心(蓝色的点),但是我不知道如何找到大的中间。我想平均所有找到的矩形中心,但我不知道怎么写出来。我正在用hsv颜色找到矩形。帮忙吗?在

编辑:我从顶部的矩形中得到了'y1',但是不知道在for循环中如何从底部得到y2。我试过了:

^{pr2}$

但它仍然失败,因为y2是在赋值之前使用的。那么,在y1被for循环覆盖之前,我如何从第二个循环行程中得到y2呢?在

你可能感兴趣的:(python输出矩形中心)