Python|OpenCV-实现检测人脸以及性别检测(12)

20 篇文章 35 订阅 ¥29.90 ¥99.00

前言

本文是该专栏的第13篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。

性别检测是计算机视觉领域里面的一个重要学习领域,简单的来说,它可以实现自动识别一张图片中的人物性别。为此在本文中,笔者将结合OpenCV和Tensorflow来实现对一张图进行“图片中的人物人脸自动识别,并对人脸再次进行性别检测”。

具体细节部分以及完整代码的实现,直接往下看正文内容。(附带完整代码)

正文

1. 依赖库安装

首先,我们在准备工作开始之前,先来提前安装好对应的依赖库:opencv-python(cv库),numpy,tensorflow,keras

如果你本地环境已安装,可以直接跳过该步骤。安装上述依赖库,直接在终端输入如下命令进行安装即可:

pip install numpy
pip install opencv-python
pip install tensorflow
pip 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 安装OpenCV-Python库 在命令行输入以下命令: ```python pip install opencv-python ``` 2. 下载Haar级联分类器 在OpenCV源代码,有一些已经训练好的Haar分类器,可以用于检测人脸、眼睛等。可以从OpenCV的Github仓库下载。在本例,我们将使用以下两种分类器: - haarcascade_frontalface_default.xml:用于检测人脸 - haarcascade_eye.xml:用于检测眼睛 3. 导入库并加载分类器 ```python import cv2 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') ``` 4. 加载图像并将其转换为灰度图像 ```python img = cv2.imread('test.jpeg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ``` 5. 检测人脸和眼睛 ```python 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) roi_gray = gray[y:y+h, x:x+w] roi_color = img[y:y+h, x:x+w] eyes = eye_cascade.detectMultiScale(roi_gray) for (ex,ey,ew,eh) in eyes: cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) ``` 6. 显示图像并等待用户按键 ```python cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 完整代码如下: ```python import cv2 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml') img = cv2.imread('test.jpeg') 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) roi_gray = gray[y:y+h, x:x+w] roi_color = img[y:y+h, x:x+w] eyes = eye_cascade.detectMultiScale(roi_gray) for (ex,ey,ew,eh) in eyes: cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 运行后,将会显示出识别到的人脸和眼睛的矩形框。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写python的鑫哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值