📜  用于人脸检测的 Opencv Python程序(1)

📅  最后修改于: 2023-12-03 15:40:53.120000             🧑  作者: Mango

用于人脸检测的 Opencv Python程序

Opencv是一个强大的计算机视觉库,可以用于各种图像和视频处理任务。它提供了一个Python接口,方便Python开发者使用。本文将介绍如何使用Opencv Python库,编写一个人脸检测程序。

程序设计

本程序将使用Opencv提供的人脸检测器CascadeClassifier,这是一个训练好的分类器,可以用于检测人脸。首先,我们需要加载这个分类器:

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

接下来,我们读取一张图片,并将其转换为灰度图像:

img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

然后,我们使用CascadeClassifier来检测人脸:

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

这个方法返回一个矩形列表,表示检测到的所有人脸的位置和大小。

最后,我们将这些矩形在原始图像上用矩形框标出来:

for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

这将在原始图像上绘制一个蓝色的矩形框,表示检测到的人脸。

最后,我们将显示修改后的图像:

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
完整代码

下面是完整的人脸检测Python程序代码:

import cv2

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
结论

本程序演示了如何使用Opencv Python库进行人脸检测。CascadeClassifier是一个强大的工具,可以用于许多图像和视频处理任务。如果你对计算机视觉感兴趣,这是一个值得学习的库!