点个赞留个关注吧!!

安装模块,模块版本低的可以更新一下模块,然后导入模块

pip install cv2  #安装模块
pip install -U cv2   #更新模块
import cv2  #导入模块

需要加入xml识别框架

face_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'./haarcascade_frontalface_default.xml')    # 加载人脸模型检测
eye_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'./haarcascade_eye.xml')  # 加载人眼模型检测

haarcascade_eye.xml 和 haarcascade_frontalface_default.xml 可以去

C:/Users/用户名/AppData/Local/Programs/Python/Python310/Lib/site-packages/cv2/data

里面查找

 脸部框架绘制、眼部绘制

cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)             # 脸部框图绘制                                
cv2.rectangle(face_area,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)  # 眼部框图绘制

加入一个可调节细节识别,值越大越不容易分辨,值越小,越容易分辨但是容易识别到不是人脸的部分,建议将值填写到1.4

face_engine.detectMultiScale(img,scaleFactor=1.4,minNeighbors=5) # 参数可调 ,有利于分辨

将识别的绘制的图片进行展示出来

cv2.imshow(" ", img)  # 检测的图片展示

里面加入了保存图片的功能,如果识别成功了,则会自动保存,否则不保存,

# 将识别成功的人脸保存下来
    if len(img) > 1:
        cv2.imwrite(f"{img}-成功.jpg", img)
    else:
        pass

演示:

完整代码:

import cv2

img = cv2.imread(r'./1.jpg')  # 导入照片
face_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'./haarcascade_frontalface_default.xml')    # 加载人脸模型检测
eye_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'./haarcascade_eye.xml')  # 加载人眼模型检测
face = face_engine.detectMultiScale(img,scaleFactor=1.4,minNeighbors=5)      # 参数可调,有利于分辨
for (x,y,w,h)in face:
    img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)             # 脸部框图绘制
    face_area = img[y:y+h,x:x+w]                                    # 将眼部检测区域范围缩小,减少检测时间
    eye = eye_engine.detectMultiScale(face_area,1.3,10)
    for (ex,ey,ew,eh) in eye:
        cv2.rectangle(face_area,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)  # 眼部框图绘制
    # 将识别成功的人脸保存下来
    if len(img) > 1:
        cv2.imwrite(f"{img}-成功.jpg", img)
    else:
        pass
cv2.imshow(" ", img)  # 检测的图片展示
cv2.waitKey(0)    # 循环
cv2.destroyAllWindows()
Logo

长江两岸老火锅,共聚山城开发者!We Want You!

更多推荐