多语言展示
当前在线:253今日阅读:99今日分享:20

怎么用python结合opencv来检测图片中的人脸?

本文介绍一下,用python结合opencv来检测图片中的人脸的具体方法,并用绿色框把途中的人脸框选出来。前提是,你已经在电脑上安装了python3和opencv模块。安装opencv模块的方法,可以参考。
工具/原料
1

电脑

2

python3

3

opencv模块

方法/步骤
1

首先,在python编译器里面加载opencv和re模块:# -*- coding: utf-8 -*-import cv2,rere模块用来防止转义,主要在python加载文件时,防止文件的绝对路径转义。

2

指定训练数据集的绝对路径,注意是绝对路径,文件名称是:haarcascade_frontalface_default.xml这是一个表格文件,用来训练前脸识别的。绝对路径放在引号里面,并在引号前面加上字母r,防止转义哦。

3

准备一张图片,放到电脑桌面上。记下图片的绝对路径。

4

在python里面加载训练数据,并读取图片。face_patterns = cv2.CascadeClassifier(path1)sample_image = cv2.imread(path2)此时运行,不会有任何返回,但是机器已经被训练好了。

5

用训练的结果,来识别图中人脸的位置。这个时候返回的是人脸的位置坐标,但是,这个坐标是放在内存里面,你看不到。faces = face_patterns.detectMultiScale(sample_image,scaleFactor=1.1,minNeighbors=5,minSize=(50, 50))

6

在原图上,框选人脸,并把图片保存为lian.png。注意看,导出图片用的也是绝对路径,前面的r防止转义。

7

下图是导出的图片。

注意事项

用Mathematica也可以识别人脸,而且代码更简洁。但是,Mathematica的人脸识别,好像只能识别正脸。

推荐信息