当前位置:   article > 正文

人脸识别(从OpenCV、Dlib到Face-Recongnition)学习_face-recognition

face-recognition

一、OpenCV人脸识别

OpenCV是什么?

OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库,可免费适用于科学研究、商业应用。它在人机互动、物体互动、图像分割、人脸识别、动作识别、运动追踪等应用领域具有极大的应用价值。

OpenCV的安装

直接运行cmd后,输入pip install opencv-python,即可完成安装。

利用OpenCV识别人脸

  1. import cv2
  2. import os
  3. import matplotlib.pyplot as plt
  4. os.chdir('e:')
  5. os.getcwd()
  6. #更改操作系统的目录
  7. def detect(filename):
  8. face_cascade = cv2.CascadeClassifier('C:/Users/JEmahaha/anaconda3/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml')
  9. #导入识别部位所需的分类器文件
  10. img = cv2.imread(filename)#读取输入的图片文件
  11. gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#以灰度模式加载图片
  12. faces = face_cascade.detectMultiScale(gray, 1.3, 5)
  13. for (x, y, w, h) in faces:#根据识别到的人脸坐标(两点++高)画矩形框
  14. img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
  15. plt.imshow(img)
  16. plt.axis('off') #去掉坐标轴
  17. plt.show()
  18. detect('J.jpeg')

输出结果: 

步骤:

1.加载分类器,当然分类器事先要放在工程目录中去。分类器本来的位置是在*\opencv\sources\data\haarcascades(根据想识别的部位选择分类器文件)

2.调用detectMultiScale()函数检测,调整函数的参数可以使检测结果更加精确。

3.把检测到的人脸等用矩形画出来。(可自定义形状、线颜色、线宽度)

补充知识点:

1.cv2.imread(filename,[flags])

用于读取图片文件。第一个参数filename填入待分析图片的路径,路径不能含有中文。第二个参数是图像的通道和色彩信息(默认值为1)。

cv2.IMREAD_COLOR:加载彩色图片,这个是默认参数,可以直接写1。
cv2.IMREAD_GRAYSCALE:以灰度模式加载图片,可以直接写0。
cv2.IMREAD_UNCHANGED:包括alpha,可以直接写-1
cv2.imread()读取图片后已多维数组的形式保存图片信息,前两维表示图片的像素坐标,最后一维表示图片的通道索引,具体图像的通道数由图片的格式来决定
不知道用法的可以通过输入代码

print(inspect.getdoc(cv2.imread))

查询

 2.detectMultiScale()函数检测

OpenCV实践之路——人脸检测(C++/Python)_星沉阁-CSDN博客_c++ opencv人脸检测

 3.cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) → None 

<
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/945808
推荐阅读
相关标签
  

闽ICP备14008679号