opencv案例: 检测人脸、检测眼睛,给人脸打框、给眼睛打框

img = cv2.imread(r'C:\Users\25584\Desktop\421396591848974865.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

face_cas = cv2.CascadeClassifier(r'C:\Users\25584\anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
face_cas.load(r'C:\Users\25584\anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
eyes_cas = cv2.CascadeClassifier(r'C:\Users\25584\anaconda3\Lib\site-packages\cv2\data\haarcascade_eye.xml')
eyes_cas.load(r'C:\Users\25584\anaconda3\Lib\site-packages\cv2\data\haarcascade_eye.xml')

faceRects = face_cas.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=50 , minSize=(64,64))
for faceRect in faceRects:
    x, y, w, h = faceRect
    cv2.rectangle(img, (x, y), (x+h, y+w), (0, 255, 0), 8)
    roi_color = img[y:y+h, x:x+w]
    roi_gray = gray[y:y+h, x:x+w]
    eyes = eyes_cas.detectMultiScale(roi_gray)
    for (ex, ey, ew, eh) in eyes:
        cv2.rectangle(roi_color, (ex, ey),(ex+ew, ey+eh), (0,255,0),5)

plt.figure(figsize=(8,6), dpi=100)
plt.imshow(img[:, :, ::-1]), plt.title('the outcome')
plt.xticks([]), plt.yticks([])
plt.show()

 

img = cv2.imread(r'C:\Users\25584\Desktop\526176517251942677.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
cv2.rectangle(img, (450, 100), (900, 650), (0, 255, 0), 5)
plt.figure(figsize=(8,6), dpi=100)
plt.imshow(img[:,:,::-1]), plt.title('the outcome')
plt.xticks([]), plt.yticks([])
plt.show()

猜你喜欢

转载自blog.csdn.net/friday1203/article/details/134847299
今日推荐