haar级联分类器

haar级联分类器的下载方法,不知道的可以看一下

代码实现
# 导入模块
import cv2
#加载一张待检测的人脸(人脸歪着可能检测不到)
img = cv2.imread('face.jpg')

# xml加载有两种方法
# 加载人脸检测的xml(第一种方法)
face_cascade = cv2.CascadeClassifier() # 先实例化一个对象
# 这里是你的xml存放路径!!!(这个是加载人脸识别的引擎)
face_cascade.load('G:\Anaconda3\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml') 
# 加载人眼识别的xml(第二种方法)
# 直接加载xml的存放路径
eye_cascade = cv2.CascadeClassifier('G:\Anaconda3\opencv-master\data\haarcascades\haarcascade_eye.xml')

# 开始人脸检测
faces = face_cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors = 5)
# 先复制一张图片
img1 = img.copy()

# 在检测到的人脸中操作
for x,y,w,h in faces:
	# 画出人脸框
	img2 = cv2.rectangle(img1, (x,y), (x+w,y+h), (0,255,0),2)
	# 找出人脸区域
	face_area = img2[y:y+h, x:x+w]
	# 在人脸区域检测人眼
	eyes = eye_cascade.detectMultiScale(face_area, scaleFactor=1.3, minNeighbors=5)
	for ex,ey,ew,eh in eyes:
		cv2.rectangle(face_area, (ex,ey), (ex+ew,ey+eh), (0,0,255), 1)

cv2.imshow('img', img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
detectMultiScale:简单介绍

img : 需要检测的图片
scaleFactor:放大倍数
minNeighbors:表示重复识别的次数,值越大,检测的要求越高

输出结果

在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐