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

本文详细介绍了从OpenCV基础的人脸识别到Face-recognition库的使用,包括OpenCV的安装和人脸检测,Face-recognition的安装及HOG和CNN算法的应用,人脸对齐的方法,以及1:1人脸识别的实现。通过实例展示了如何进行视频中的人脸定位,同时补充了相关函数cv2.imread()和cv2.cvtColor()的使用知识。
摘要由CSDN通过智能技术生成

一、OpenCV人脸识别

OpenCV是什么?

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

OpenCV的安装

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

利用OpenCV识别人脸

import cv2
import os
import matplotlib.pyplot as plt
os.chdir('e:')
os.getcwd()
#更改操作系统的目录
def detect(filename):
    face_cascade = cv2.CascadeClassifier('C:/Users/JEmahaha/anaconda3/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml')
#导入识别部位所需的分类器文件
    img = cv2.imread(filename)#读取输入的图片文件
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#以灰度模式加载图片
    faces = face_cascade.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), 2)
    plt.imshow(img)
    plt.axis('off') #去掉坐标轴
    plt.show()
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 

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值