在opencv python中查找绘制的矩形是否在屏幕上可见

2024-10-17 04:25:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些代码可以根据其他参数使用cv2.rectangle函数绘制一个矩形。这是人脸检测程序的一部分。矩形在屏幕上使用imshow显示在图像中。但是,由于矩形尺寸的可变性质,在某些情况下矩形是不可见的。在图像中绘制矩形的代码行之后,如何检测矩形是否可见。我想要这个,这样我就能在没有发现人脸的时候找到。这是我的代码:

import numpy as np
import cv2

# multiple cascades: https://github.com/Itseez/opencv/tree/master/data/haarcascades

# https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_eye.xml
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

cap = cv2.VideoCapture(0)

while 1:
    ret, img = cap.read()
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)

    for (x,y,w,h) in faces:
        cv2.rectangle(img,(x + (w / 4), y + (h / 4)),(x+(3 * w / 4),y + (3 * h / 4)),(255,0,0),2)

    cv2.imshow('img',img)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break

cap.release()
cv2.destroyAllWindows()

谢谢!在


Tags: 代码httpsgithubmastercomimgdataxml