- 安装Python和OpenCV
首先需要在计算机上安装Python和OpenCV,安装方法可以参照官方文档进行。
- 引入需要的库和模块
在Python程序的开头,需要引入需要的库和模块,例如:
import cv2
import numpy as np
其中,cv2就是OpenCV所提供的Python接口模块,numpy模块用于处理数值计算。
- 读取并处理图像
通过cv2模块中提供的imread()函数读取一张图片:
img = cv2.imread('image.png')
此时,img为OpenCV中的矩阵,可以直接对其进行处理,例如将图像进行灰度化:
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- 加载训练好的分类器
OpenCV中已经提供了许多训练好的人脸分类器模型,可以直接使用。例如,使用Haar分类器:
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
- 检测人脸
通过使用识别器,可以检测图像中的人脸,并用方框圈出来:
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
其中,detectMultiScale()函数可以根据人脸在图像中的相对大小来调整分类器的判断。minNeighbors表示每个人脸矩形所应保留的邻居矩形的数量,由于多个相交的人脸对象会被检测到,因此需要保留最多的过滤信息。
- 显示结果
最后,将结果显示出来:
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上就是基本的人脸识别代码示例,以下是两个实例说明:
示例1:
通过视频流检测人脸。即不仅可以读取和处理单幅图像,还可以实时检测视频流中出现的人脸。
示例2:
将人脸识别与电机运动控制相结合,实现“人脸追踪机器人”。即通过摄像头实时检测人脸,将检测到的人脸坐标与机器人运动方向进行连接,使机器人能够自动追踪人脸的运动。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python+opencv实现的简单人脸识别代码示例 - Python技术站