10-1.人脸检测

from imutils import *
image = imread('face.png')
show(image)

1. image:输入图像
2. scaleFactor=1.1:这个是每次缩小图像的比例,默认是1.1
3. minNeighbors=3:匹配成功所需要的周围矩形框的数目,每一个特征匹配到的区域都是一个矩形框,只有多个矩形框同时存在的时候,才认为是匹配成功,比如人脸,这个默认值是3。
4. minSize:匹配人脸的最小范围
5. flags=0:可以取如下这些值: 
CASCADE_DO_CANNY_PRUNING=1, 利用canny边缘检测来排除一些边缘很少或者很多的图像区域 
CASCADE_SCALE_IMAGE=2, 正常比例检测 
CASCADE_FIND_BIGGEST_OBJECT=4, 只检测最大的物体 
CASCADE_DO_ROUGH_SEARCH=8 初略的检测

# 级联分类器
detector = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
rects = detector.detectMultiScale(image, scaleFactor=1.1, minNeighbors=2, minSize=(10,10), flags=cv2.CASCADE_SCALE_IMAGE)

for (x,y,w,h) in rects:
    # 画矩形框
    cv2.rectangle(image, (x,y), (x+w,y+h), (0,255,0), 2)
    
show(image)

def facedetect(image):
    image = imread(image)
    # 级联分类器
    detector = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
    rects = detector.detectMultiScale(image, scaleFactor=1.1, minNeighbors=2, minSize=(10,10), flags=cv2.CASCADE_SCALE_IMAGE)

    for (x,y,w,h) in rects:
        # 画矩形框
        cv2.rectangle(image, (x,y), (x+w,y+h), (0,255,0), 2)

    show(image)
facedetect('Solvay.jpg')

原文地址:https://www.cnblogs.com/liuwenhua/p/11891004.html