文章目錄
- 前言
- 一、人臉識别的算法
- 二、代碼
前言
本文章是基于opencv開源做的,是在python的環境下運作。
這裡python的配置環境就不介紹了,網上教程非常多,都是可以使用的。
人臉識别,是基于人的臉部特征資訊進行身份識别的一種生物識别技術。用錄影機或攝像頭采集含有人臉的圖像或視訊流,并自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識别的一系列相關技術,通常也叫做人像識别、面部識别。
提示:以下是本篇文章正文内容,下面案例可供參考
一、人臉識别的算法
人臉識别的算法有很多,基本理論都是差不多的。作者之前也了解過算法,也寫了點内容可以參考。
二、代碼
import cv2
import numpy as np
cap=cv2.VideoCapture(0,cv2.CAP_DSHOW)#打開本地攝像頭裝置
face_mode=cv2.CascadeClassifier("haarcascade_frontalface_default.xml")#引用opencv已經訓練好的檔案
while True:
ret,img=cap.read()#讀取圖檔
if ret is None:#沒有讀到圖檔
break
#cv2.imshow("img",img)#讀取的原攝像頭的圖檔
gray_face=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#使圖檔灰階化
#cv2.imshow("gray_face",gray_face)#讀取使灰階的圖
faces=face_mode.detectMultiScale(gray_face,scaleFactor=1.1,minNeighbors=5,minSize=(10,10))#使用訓練好的檔案開始檢測人臉
for x,y,w,h in faces:#掃描圖檔
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),thickness=2)#将檢測到人臉框起來,綠色RBG=255,然後邊框的大小,其他值預設
roi_color_face=img[y:y+h,x:x+w]#将圖檔的人臉提取出來
cv2.imshow("roi_color_face",roi_color_face)
cv2.imshow("face_img",img)#檢測到的人臉的圖像
key=cv2.waitKey(25)#設定一個退出标志為ESC每25ms讀取一次
if key==27:#ESC的ascall為27
break
cap.release()#釋放圖檔
cv2.destroyAllWindows()#關閉所有視窗