繁体   English   中英

如何检查 cv2.rectangle 是否位于 opencv python 的 cv2.rectangle 内

[英]How to check if cv2.rectangle lies inside cv2.rectangle in opencv python

我有一个矩形坐标

cv2.rectangle(image, (245, 158), (721, 924), color, 2)

它在哪里识别人(主要对象)

我在我的第一个矩形内检测到的头盔还有一个坐标

cv2.rectangle(image, (415, 180), (650, 345), color, 2)

在此处输入图像描述

现在在代码中,我必须检查在主矩形中识别出多少个矩形的条件(人是我的主要对象)

任何人都可以请给我一个好方法。 请。 谢谢

我想既然你有坐标,你可以检查头盔的坐标是否位于人坐标的中间

px1, py1, px2, py2 = 245, 158, 721, 924
hx1, hy1, hx2, hy2 = 415, 180, 650, 345
if hx1 >= px1 and hy1 >= py1 and hx2 <= px2 and hy2 <=py2:
    # do whatever

如果你想使用cv2并找到它已经消失的区域,那么你可以取一个空白的 NumPy 数组,其大小与你的图像相同,绘制白色的人正方形,执行它的逆运算,然后使用 XOR 运算另一个相同大小的数组,其中头盔用白色绘制。 这样,您将获得该人之外的区域。

import numpy as np
import cv2

h, w = image[:2]
p_img = np.zeros((w, h), dtype=np.uint8)
h_img = np.zeros((w, h), dtype=np.uint8)
cv2.rectangle(p_img, (245, 158), (721, 924), (255, 255, 255), -1)
cv2.rectangle(h_img, (415, 180), (650, 345), (255, 255, 255), -1)
p_img = cv2.bitwise_not(p_img)
res = cv2.bitwise_xor(p_img, h_img)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM