OpenCV-Python 人脸检测基础

148 阅读1分钟
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
# 设置兼容中文
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
D:\Anaconda\AZWZ\lib\site-packages\numpy\_distributor_init.py:30: UserWarning: loaded more than 1 DLL from .libs:
D:\Anaconda\AZWZ\lib\site-packages\numpy\.libs\libopenblas.NOIJJG62EMASZI6NYURL6JBKM4EVBGM7.gfortran-win_amd64.dll
D:\Anaconda\AZWZ\lib\site-packages\numpy\.libs\libopenblas.WCDJNK7YVMPZQ2ME2ZZHJJRJ3JIKNDB7.gfortran-win_amd64.dll
  warnings.warn("loaded more than 1 DLL from .libs:\n%s" %

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X312T3dd-1637755535929)(attachment:image.png)]

cv.__file__
'D:\\Anaconda\\AZWZ\\lib\\site-packages\\cv2\\cv2.cp38-win_amd64.pyd'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CPIYSjM1-1637755553340)(attachment:image.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6XWCINpS-1637755535936)(attachment:image.png)]

# 以灰度图的形式读取图片
img = cv.imread('img/wulin.jpeg')
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
# 实例化OpenCV人脸识别的分类器
face_cas = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
face_cas.load(r"D:/Anaconda/AZWZ/lib/site-packages/cv2/data/haarcascade_frontalface_default.xml")
True
# 实例化OpenCV眼睛识别的分类器
eyes_cas = cv.CascadeClassifier("haarcascade_eye.xml")
eyes_cas.load(r"D:/Anaconda/AZWZ/lib/site-packages/cv2/data/haarcascade_eye.xml")
True
# 调用识别人脸
faceRects = face_cas.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32,32))
for faceRect in faceRects:
    x,y,w,h = faceRect
    # 在图片上框出人脸
    cv.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)
    # 在识别出的人脸中再次进行眼睛的识别
    roi_color = img[y:y+h,x:x+w]
    roi_gray = gray[y:y+h,x:x+w]
    eyesRects = eyes_cas.detectMultiScale(roi_gray,minNeighbors=1,minSize=(1,1))
    for (ex,ey,ew,eh) in eyesRects:
        # 框出眼睛
        cv.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
# 结果展示
plt.figure(dpi=500)
plt.imshow(img[:,:,::-1])
<matplotlib.image.AxesImage at 0x1e5875b4d00>




[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1EDS2NkT-1637755535937)(output_8_1.png)]