想要实现人脸检测的功能,就需要用到大名鼎鼎的OpenCV。本文就用python语言来实现如何实现对人脸的检测识别。
一、首先,我们先对OpenCV做一个简单了解。
它是一个强大的计算机视觉处理的库,底层是用C语言和C++语言编写,效率非常高。它提供了丰富的图像和视频处理工具,广泛应用于实时视觉应用、图像分析、模式识别等领域。
二、人脸检测的实现具体代码。
小编对opencv的核心处理代码做了一个类,进行了封装。
文件名:target_detection.py。
import cv2
from cvLib import *
# OpenCV 的高级应用:目标检测
# 以下是一个人脸检测的示例:
# 显示图像
obj = CV2Lib("Alice")
imagePath = './image/female.png'
image = cv2.imread(imagePath)
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray_image, scaleFactor=1.9, minNeighbors=5)
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 0, 255), 2)
obj.showImage('Faces', image)
文件名:cvLib.py。
import cv2
class CV2Lib:
def __init__(self, name):
self.name = name
def sayHello(self):
print("Hello, " + self.name)
def loadImage(self, imagePath):
self.image = cv2.imread(imagePath)
def convertToGray(self): #转成灰度
if self.image is not None:
self.image = cv2.cvtColor(self.image, cv2.COLOR_BGR2GRAY)
def showImage(self,name, image):
# 创建一个窗口
cv2.namedWindow(name)
# 读取图像self.image =
# self.loadImage(imagePath)
# 显示图像
cv2.imshow('Image', image)
# 等待按键操作,如果按下'q',则退出循环并关闭窗口
while True:
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 关闭窗口(虽然在这个例子中,上面的循环已经通过break退出了)
cv2.destroyAllWindows() # 或者使用 cv2.destroyWindow("MyWindow")
在项目更目录下创建目录image,并把下图放在下面。

python3 target_detection.py
运行后效果如下:


全部评论