1.1(numpy+cv)实现人脸的识别
2020-04-12 本文已影响0人
羽天驿
一 、人脸识别需要文件
haarcascade_frontalface_default.xml
相关下载链接://download.csdn.net/download/u011262200/10651807?utm_source=bbsseo
二、cv库的简单介绍
在计算机视觉项目的开发中,OpenCV作为较大众的开源库,拥有了丰富的常用图像处理函数库,采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上,能够快速的实现一些图像处理和识别的任务。此外,OpenCV还提供了Java、python、cuda等的使用接口、机器学习的基础算法调用,从而使得图像处理和图像分析变得更加易于上手,让开发人员更多的精力花在算法的设计上。
总之,opencv应用非常广泛,可以做深入的了解
三、代码的实现简单的人脸的识别
以下图片来自百度--张芷溪
import numpy as np
import cv2
face_detect=cv2.CascadeClassifier("./haarcascade_frontalface_alt.xml")
# 检查使用的东西
img=cv2.imread("./zzx.jpg")
c=cv2.cvtColor(img,code=cv2.COLOR_BGR2GRAY)
face_zones=face_detect.detectMultiScale(img)
# 传入需要检查的东西,生成检测的对象
# 通过遍历拿到这几点的像素的位置
for x,y,w,h in face_zones:
cv2.rectangle(img,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,255],thickness=2)
# print(face_zones)
cv2.imshow("face",img)
# 显示图片
cv2.waitKey(0)
# 键盘上有输入的东西就关闭窗口
cv2.destroyAllWindows()
图片:
zzx.jpg
识别后:
zzx.png
- 以上的代码就实现了简单的人脸的识别,你可以更加深入的取研究CV2。
- 当然也可以识别多张人脸,我们就不做代码演示,写法类似
- 当有多张人脸时,有人脸未识别的时候,就需要调整算法参数得缩放比例
- face_zones=face_detect.detectMultiScale(img,scaleFactor=调整数值)