体验opencv进行人脸识别(基于python)


使用opencv自带的分类器进行人脸识别,python中需要导入cv2模块。如果之前没有安装过这个模块可以用pip工具安装:

pip install opencv-python


安装完成后就可以开始编码了
1.导入模块

import cv2


2.加载分类器
myCascade = cv2.CascadeClassifier("cascade")
myCascade.load("D:/env/opencv2/opencv/build/share/OpenCV/haarcascades/haarcascade_frontalcatface.xml")

haarcascade_frontalcatface.xml分类器就是opencv自带的前脸识别分类器,目录中还有一些其他的分类器有兴趣可以尝试一下。


3.加载图片
image = cv2.imread("03.jpg");

使用imread函数,传入图片路径。


4.将图片转换为灰度图

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)


5.传入灰度图进行检测,识别出人脸的区域。
rects = myCascade.detectMultiScale(gray, scaleFactor = 1.3,minNeighbors = 3,minSize=(100,100),flags=cv2.IMREAD_GRAYSCALE)

调用分类器对象的detectMultiScale函数进行检测,第一个参数就是贷检测的图片,scaleFactor搜索窗口变换的比例默认1.1,minNeighbors表示每个目标至少要被检测到多少次才算真的目标,minSize表示目标的最小尺寸,flags与旧函数cvHaarDetectObjects中的相同,也不知道是啥


6.将检测出的矩形区域绘制到图片中
for (x,y,w,h) in rects:

cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),1)


7.最后显示绘有矩形区域的图片

cv2.imshow('img',image)


全部代码如下:

image.png

运行效果:

image.png

演示站
上一篇:Qt如何嵌入其他程序的窗口?
下一篇:提示svnserve.conf:xx:Option expected

发表评论