计算机系统应用教程网站

网站首页 > 技术文章 正文

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

btikc 2024-09-05 12:28:56 技术文章 8 ℃ 0 评论

使用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)

全部代码如下:

运行效果:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表