import cv2
import numpy as np
# 读取图片
img = cv2.imread('../data/ten_pic/0.jpg')
# 加载人脸识别模型
face_cascade = cv2.CascadeClassifier('/home/ubuntu/Downloads/yes/envs/szy/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml')
# 检测人脸
faces = face_cascade.detectMultiScale(img, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# 绘制矩形mask
for (x, y, w, h) in faces:
# 获取人脸区域
face_roi = img[y:y+h, x:x+w]
# 加载眼睛识别模型
eye_cascade = cv2.CascadeClassifier('/home/ubuntu/Downloads/yes/envs/szy/share/OpenCV/haarcascades/haarcascade_eye.xml')
# 检测眼睛
eyes = eye_cascade.detectMultiScale(face_roi, scaleFactor=1.1, minNeighbors=5, minSize=(20, 20))
# 计算眼睛位置高度
eye_y = (eyes[0][1] + eyes[1][1]) // 2 + y
eye_h = (eyes[0][3] + eyes[1][3]) // 2
# 绘制mask
mask = np.full_like(img, 255)
mask[:eye_y, :] = 0
mask[eye_y + eye_h:, :] = 0
# 保存mask为文件
cv2.imwrite('mask.jpg', mask)
cv2.destroyAllWindows()
效果如下:


此处要注意第八行和第十八行的解释器,必须要在你自己的环境里找到他的位置!
可以使用命令:
find . -type f -name "文件名"
