opencv 机器学习-人脸识别

基本概念

在这里插入图片描述

计算机视觉与机器学习的关系

计算机视觉是机器学习的一种应用,而且是最有价值的应用

人脸识别

  • 哈尔(Haar)级联方法
  • 深度学习方法(DNN)

哈尔(Haar)级联方法

  • Haar是专门为解决人脸识别而推出的
  • 在深度学习还不流行时,Haar已经可以商用

哈尔(Haar)级联方法人脸识别步骤

  • 创建Haar级联器
  • 导入图片并将其灰度化
  • 调用detectMultiScale方法进行人脸识别

detectMultiScale

  • detectMultiScale(img,double scaleFactor=1.1,int minNeighbors=3,…)
import cv2 as cv
import numpy as np

# 第一步,创建Haar级联器
facer = cv.CascadeClassifier(r'C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
# 第二步,导入人脸识别的图片并将其灰度化
img = cv.imread(r"C:\Users\Administrator\Desktop\girl.png")
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

# 第三步,进行人脸识别
# [[x,y,w,h]]
faces = facer.detectMultiScale(gray, 1.2, 5)

for (x, y, w, h) in faces:
    cv.rectangle(img, (x, y), (x+w, y+h), (0, 0, 255), 2)
cv.imshow("img", img)
cv.waitKey(0)

在这里插入图片描述

其他部位检测

import cv2 as cv
import numpy as np

# 第一步,创建Haar级联器
facer = cv.CascadeClassifier(r'C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
eye = cv.CascadeClassifier(r'C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_eye.xml')

# 第二步,导入人脸识别的图片并将其灰度化
img = cv.imread('./tt.jpg')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

# 第三步,进行人脸识别
# [[x,y,w,h]]
faces = facer.detectMultiScale(gray, 1.2, 5)


i = 0
for (x, y, w, h) in faces:
    cv.rectangle(img, (x, y), (x+w, y+h), (0, 0, 255), 2)
    roi_img = img[y:y+h, x:x+w]
    eyes = eye.detectMultiScale(roi_img, 1.2, 5)
    for (x, y, w, h) in eyes:
        cv.rectangle(roi_img, (x, y), (x + w, y + h), (255, 0, 0), 2)
    i = i+1
    winname = "fave" + str(i)
    cv.imshow(winname, roi_img)
    cv.waitKey(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值