How to check if cv2.circle lies inside cv2.rectangle in opencv python
我有一个正在检测面部的 opencv 应用程序。我在框架上绘制了一个
1 | cv2.circle(frame, (293, 141), 5, (0, 255, 0), -1) |
表示 x 为 293,y 为 141 表示圆。下面是人脸检测的代码:
1 2 3 4 | face_bbox = face.detect_face(frame) if face_bbox is not None: (f_startX, f_startY, f_endX, f_endY) = face_bbox.astype("int") cv2.rectangle(frame, (f_startX, f_startY), (f_endX, f_endY), (0, 0, 0), 2) |
1 2 3 4 | if f_startX < 293 < f_endX and f_startY > 141 > f_endY: print("Circle is inside face") else: print("Circle is outside face") |
但这似乎不起作用。对于如何将面部的 x 和 y 与圆的 x 和 y 进行比较,我也有点困惑。任何人都可以请给我一个好方法。请帮忙。谢谢
我得到了它,这是我使用的条件:
1 2 3 4 | if f_startX < 293 < f_endX and f_startY < 141 < f_endY: print("Circle is inside face") else: print("Circle is outside face") |
我提出了一个非常通用的解决方案。
相应地替换变量。
1 2 3 4 5 6 7 8 9 10 11 | #circle center center_x = some_value center_y = some_value radius = some_value (f_startX, f_startY, f_endX, f_endY) = face_bbox.astype("int") if (center_x + radius < f_endX) and (center_y + radius < f_endY) and\\ (center_x - radius > f_startX) and (center_y - radius > f_startY): print("Inside") else: print("Outside") |