人脸检测是计算机视觉的令人着迷的应用之一,它使其更加逼真。 OpenCV 有一个内置的工具来执行人脸检测。 我们将使用 Haar 级联分类器进行人脸检测。
我们需要数据来使用 Haar 级联分类器。 可以在我们的 OpenCV 包中找到这些数据。 安装 OpenCv 后,有一个文件夹名称 haarcascades
。 将有不同应用程序的 .xml
文件。 现在,将它们全部复制以供不同的使用,然后粘贴到当前项目下的新文件夹中。
示例
以下是使用 Haar 级联检测下图中显示的 Amitabh Bachan 的面部的 Python 代码 -
如下所示导入 OpenCV 包 -
import cv2
import numpy as np
现在,使用 HaarCascadeClassifier 来检测脸部 -
face_detection=
cv2.CascadeClassifier('D:/ProgramData/cascadeclassifier/
haarcascade_frontalface_default.xml')
使用 imread()
函数读取一个指定的图像,
img = cv2.imread('AB.jpg')
将其转换为灰度,因为它会接受灰色图像 -
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
接下来,使用 face_detection.detectMultiScale
,执行实际的人脸检测
faces = face_detection.detectMultiScale(gray, 1.3, 5)
围绕整个脸部绘制一个矩形 -
for (x,y,w,h) in faces:
img = cv2.rectangle(img,(x,y),(x+w, y+h),(255,0,0),3)
cv2.imwrite('Face_AB.jpg',img)
如图所示,这个 Python 程序将创建一个名为 Face_AB.jpg 的图像,它包含人脸检测 -
眼睛检测是计算机视觉的另一个引人注目的应用,使其更加逼真和未来。 OpenCV 有一个内置的工具来执行眼睛检测。 我们将使用 Haar 级联分类器进行眼睛检测。
示例 以下示例给出了使用 Haar 级联的 Python 代码来检测下图中给出的 Amitabh Bachan 的面部 -
如下所示导入 OpenCV 包 -
import cv2
import numpy as np
使用 HaarCascadeClassifier 检测脸部 -
eye_cascade = cv2.CascadeClassifier('D:/ProgramData/cascadeclassifier/haarcascade_eye.xml')
使用 imread()
函数读取指定图像 -
img = cv2.imread('AB_Eye.jpg')
然后,将其转换为灰度,因为它会接受灰色图像 -
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
使用 eye_cascade.detectMultiScale
,执行实际的人脸检测 -
eyes = eye_cascade.detectMultiScale(gray, 1.03, 5)
现在,围绕整个脸部绘制一个矩形 -
for (ex,ey,ew,eh) in eyes:
img = cv2.rectangle(img,(ex,ey),(ex+ew, ey+eh),(0,255,0),2)
cv2.imwrite('Eye_AB.jpg',img)
这个 Python 程序将创建一个名为 Eye_AB.jpg 的图像,如图所示,