opencv_python图像处理——LBP特征描述算子-人脸检测

提前从GitHub下载xml文件(右键raw选择save link as),图像路径指定图像存放位置

#coding:utf-8
import cv2 as cv

# 读取原始图像
img= cv.imread('img/faces3.jpg')
#face_detect = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

face_detect = cv.CascadeClassifier("lbpcascade_frontalface_improved.xml")
# 检测人脸
# 灰度处理
gray = cv.cvtColor(img, code=cv.COLOR_BGR2GRAY)

# 检查人脸 按照1.1倍放到 周围最小像素为5
face_zone = face_detect.detectMultiScale(gray, scaleFactor = 2, minNeighbors = 2) # maxSize = (55,55)
print ('识别人脸的信息:\n',face_zone)

# 绘制矩形和圆形检测人脸
for x, y, w, h in face_zone:
    # 绘制矩形人脸区域
    cv.rectangle(img, pt1 = (x, y), pt2 = (x+w, y+h), color = [0,0,255], thickness=2)
    # 绘制圆形人脸区域 radius表示半径
    cv.circle(img, center = (x + w//2, y + h//2), radius = w//2, color = [0,255,0], thickness = 2)

# 设置图片可以手动调节大小
cv.namedWindow("Easmount-CSDN", 0)

# 显示图片
cv.imshow("Easmount-CSDN", img)

# 等待显示 设置任意键退出程序
cv.waitKey(0)
cv.destroyAllWindows()

检测到人脸图像:
原图
opencv_python图像处理——LBP特征描述算子-人脸检测_第1张图片
结果
opencv_python图像处理——LBP特征描述算子-人脸检测_第2张图片
opencv_python图像处理——LBP特征描述算子-人脸检测_第3张图片
失败情况
原图
opencv_python图像处理——LBP特征描述算子-人脸检测_第4张图片
结果
opencv_python图像处理——LBP特征描述算子-人脸检测_第5张图片
opencv_python图像处理——LBP特征描述算子-人脸检测_第6张图片
原图
opencv_python图像处理——LBP特征描述算子-人脸检测_第7张图片
结果
opencv_python图像处理——LBP特征描述算子-人脸检测_第8张图片
opencv_python图像处理——LBP特征描述算子-人脸检测_第9张图片
由结果可见,利用LBP特征描述算子检测人脸存在很大的缺陷,对图像中人脸的要求比较高,如果人脸存在旋转,不能检测,人脸太小也不能检测。

参考资料链接
Datawhale计算机视觉基础-图像处理(下)-Task02 LBP特征描述算子-人脸检测

你可能感兴趣的:(Python,Opencv)