苏木三少
错的不是你,而是这个世界。

OpenCV实现动态人脸识别(第二讲)

OpenCV实现动态人脸识别

前面我们讲了使用opencv打开图片这节我们讲怎么识别图片中的人脸。

我们的主要思想是以下这几部。

1、导入库–2、加载图片–3、加载人脸模型-4、调整图片灰度-5、检查人脸-6、标记人脸-7、创建窗口–8、显示图片–9、暂停窗口–10、关闭窗口。

这里需要的人脸模型可以点击这里下载。提取码:vmch  且把人脸模型放在python项目下

下面我们就实际操作一下。

下面是源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 导入库
import cv2
# 加载图片
img = cv2.imread('TEXT.jpg')
# 加载人脸模型
face = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml")
# 调整图片灰度
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
# 检查人脸
faces = face.detectMultiScale(gray)
# 标记人脸
for (x, y, w, h) in faces:
    # 里面有四个参数1,写图片,2,写坐标原点,3,识别大小 4颜色 5线宽
    cv2.rectangle(img, (x, y) ,(x+w, y+h),(0, 255, 0), 2)
# 创建窗口
cv2.namedWindow('taoshukai zuishuai')
# 显示窗口
cv2.imshow('taoshukai',img)
# 暂停窗口
cv2.waitKey(0)
# 关闭窗口
cv2.destroyAllWindows()

 

这是我们最终实现的效果:

上面调用的一些方法我们需要给大家解释一下。

1、解释一下我们为什么要把图片和人脸模型文件放在python工作区间下。

答:路径在python里面分为:相对路径(python文件下),绝对路径(告诉源文件的准确位置)我一般用第一个,因为绝对路径我一般容易错。

2、什么是人脸模型?

答:这是一些前辈和大佬对人脸数据进行采集生成的一个xml文件,opencv技术比较成熟所以人脸识别已经发展很久了,有些数据不需要我们在人为的进行采集了。

3、什么是图像的灰度?

答:我们都知道图片的色彩都是由GPU合成然后在通过显示器呈现给我们的。为了使程序的性能较高,我们采用图像灰度处理(其实就是黑白化了)。

4、标记人脸是怎么实现的?

我们通过rectangle这个方法来进行,标记里面的参数我们在注释中一一有解释。可以通过help(rectangle)查看函数的使用方法。

 

 

赞(3) 打赏
有问题的朋友随时留言,或者加我为好友。我的QQ是805375353. <<苏木三少博客 » OpenCV实现动态人脸识别(第二讲)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

十年之约