基于python3 OpenCV3實(shí)現(xiàn)靜態(tài)圖片人臉識(shí)別
本文采用OpenCV3和Python3 來(lái)實(shí)現(xiàn)靜態(tài)圖片的人臉識(shí)別,采用的是Haar文件級(jí)聯(lián)。
首先需要將OpenCV3源代碼中找到data文件夾下面的haarcascades文件夾里面包含了所有的OpenCV的人臉檢測(cè)的XML文件,這些文件可以用于檢測(cè)靜態(tài),視頻文件,攝像頭視頻流中的人臉,找到haarcascades文件夾后,復(fù)制里面的XML文件,在你新建的Python腳本文件目錄里面建一個(gè)名為cascades的文件夾,并把復(fù)制的XML文件粘貼到新建的文件夾中一些有人臉的的圖片,這個(gè)大家可以自行百度。
創(chuàng)建一個(gè)識(shí)別人臉的函數(shù)detect()
def detect(img): #函數(shù)聲明了一個(gè)face_cascade的變量,該變量為CascadeClassifier的對(duì)象,用于檢測(cè)人臉(frontalface) face_cascade = cv2.CascadeClassifier('./cascades/haarcascade_frontalface_default.xml') #進(jìn)行灰度化處理 gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #進(jìn)行實(shí)際的人臉檢測(cè),傳遞參數(shù)是scaleFactor和minNeighbor,分別表示人臉檢測(cè)過程中每次迭代時(shí)圖像的壓縮率和每個(gè)人臉矩形保留近鄰數(shù)目的最小值 faces = face_cascade.detectMultiScale(gray,1.3,5) for (x,y,w,h) in faces: #依次提取faces變量中的值來(lái)畫矩形 img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,255),2) cv2.imshow('face_track',img) #避免圖形窗口關(guān)閉 cv2.waitKey(0)
上面就是主要的函數(shù),當(dāng)然你也可以不用函數(shù),直接寫在while循環(huán)里面,下面是完整的程序代碼
import cv2 filename = cv2.imread('face_2.jpg') def detect(img): face_cascade = cv2.CascadeClassifier('./cascades/haarcascade_frontalface_default.xml') 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,255),2) cv2.imshow('face_track',img) cv2.waitKey(0) if __name__ == "__main__": detect(filename)
運(yùn)行結(jié)果
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python基于opencv實(shí)現(xiàn)的人臉識(shí)別(適合初學(xué)者)
- python opencv人臉識(shí)別考勤系統(tǒng)的完整源碼
- python實(shí)現(xiàn)圖片,視頻人臉識(shí)別(opencv版)
- Python基于Opencv來(lái)快速實(shí)現(xiàn)人臉識(shí)別過程詳解(完整版)
- Python opencv實(shí)現(xiàn)人眼/人臉識(shí)別以及實(shí)時(shí)打碼處理
- Python基于OpenCV庫(kù)Adaboost實(shí)現(xiàn)人臉識(shí)別功能詳解
- python調(diào)用OpenCV實(shí)現(xiàn)人臉識(shí)別功能
- python opencv3實(shí)現(xiàn)人臉識(shí)別(windows)
- 使用 Python 和 OpenCV 實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別功能
相關(guān)文章
python抓取網(wǎng)頁(yè)時(shí)字符集轉(zhuǎn)換問題處理方案分享
python學(xué)習(xí)過程中發(fā)現(xiàn)英文不好學(xué)起來(lái)挺困難的,其中小弟就遇到一個(gè)十分蛋疼的問題,百度了半天就沒找到解決辦法~囧~摸索了半天自己解決了,記錄下來(lái)與君共勉。2014-06-06如何利用Python獲取鼠標(biāo)的實(shí)時(shí)位置
這篇文章主要給大家介紹了關(guān)于如何利用Python獲取鼠標(biāo)的實(shí)時(shí)位置的相關(guān)資料,主要利用的是pyautogui,一個(gè)自動(dòng)化鍵鼠操作的Python類庫(kù),需要的朋友可以參考下2022-01-01如何解決vscode下powershell終端進(jìn)入python虛擬環(huán)境venv問題
這篇文章主要介紹了如何解決vscode下powershell終端進(jìn)入python虛擬環(huán)境venv問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05使用python讀取.text文件特定行的數(shù)據(jù)方法
今天小編就為大家分享一篇使用python讀取.text文件特定行的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-01-01AUC計(jì)算方法與Python實(shí)現(xiàn)代碼
今天小編就為大家分享一篇AUC計(jì)算方法與Python實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-02-02Mac下Supervisor進(jìn)程監(jiān)控管理工具的安裝與配置
這篇文章主要介紹了Mac下Supervisor進(jìn)程監(jiān)控管理工具的安裝與配置,Supervisor 是由 Python 寫成,是一個(gè)類 unix 操作系統(tǒng)下的進(jìn)程監(jiān)控管理工具,本文講解MAC系統(tǒng)下的配置與安裝,需要的朋友可以參考下2014-12-12