基于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è)過(guò)程中每次迭代時(shí)圖像的壓縮率和每個(gè)人臉矩形保留近鄰數(shù)目的最小值
faces = face_cascade.detectMultiScale(gray,1.3,5)
for (x,y,w,h) in faces:
#依次提取faces變量中的值來(lái)畫(huà)矩形
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ù),直接寫(xiě)在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í)有所幫助,也希望大家多多支持腳本之家。
- opencv 做人臉識(shí)別 opencv 人臉匹配分析
- OPENCV+JAVA實(shí)現(xiàn)人臉識(shí)別
- python+opencv實(shí)現(xiàn)的簡(jiǎn)單人臉識(shí)別代碼示例
- java+opencv實(shí)現(xiàn)人臉識(shí)別功能
- OpenCV Java實(shí)現(xiàn)人臉識(shí)別和裁剪功能
- 詳解如何用OpenCV + Python 實(shí)現(xiàn)人臉識(shí)別
- Python基于opencv實(shí)現(xiàn)的人臉識(shí)別(適合初學(xué)者)
- Python opencv實(shí)現(xiàn)人眼/人臉識(shí)別以及實(shí)時(shí)打碼處理
- 結(jié)合OpenCV與TensorFlow進(jìn)行人臉識(shí)別的實(shí)現(xiàn)
- OpenCV實(shí)現(xiàn)人臉識(shí)別
- 用OpenCV和Python進(jìn)行人臉識(shí)別實(shí)戰(zhàn)
相關(guān)文章
Python如何使用Pandas庫(kù)從Excel文件中提取數(shù)據(jù)
今天我要分享一個(gè)超級(jí)實(shí)用的Python技巧:如何用pandas庫(kù)從Excel文件中提取我們需要的數(shù)據(jù)列,這個(gè)技能在工作中特別有用,比如處理學(xué)生成績(jī)表、客戶名單等Excel數(shù)據(jù)時(shí),可以快速獲取關(guān)鍵信息,需要的朋友可以參考下2025-04-04
django restframework serializer 增加自定義字段操作
這篇文章主要介紹了django restframework serializer 增加自定義字段操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
淺談pyqt5在QMainWindow中布局的問(wèn)題
今天小編就為大家分享一篇淺談pyqt5在QMainWindow中布局的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Matplotlib 生成不同大小的subplots實(shí)例
今天小編就為大家分享一篇Matplotlib 生成不同大小的subplots實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python循環(huán)結(jié)構(gòu)全面解析
循環(huán)中的代碼會(huì)執(zhí)行特定的次數(shù),或者是執(zhí)行到特定條件成立時(shí)結(jié)束循環(huán),或者是針對(duì)某一集合中的所有項(xiàng)目都執(zhí)行一次,這篇文章給大家介紹Python循環(huán)結(jié)構(gòu)解析,感興趣的朋友跟隨小編一起看看吧2025-06-06
Python使用Mechanize模塊編寫(xiě)爬蟲(chóng)的要點(diǎn)解析
這篇文章主要介紹了Python使用Mechanize模塊編寫(xiě)爬蟲(chóng)的要點(diǎn)解析,作者還講解了Mechanize程序占用內(nèi)存過(guò)高問(wèn)題的相關(guān)解決方法,需要的朋友可以參考下2016-03-03
python爬取網(wǎng)易云音樂(lè)評(píng)論
這篇文章主要為大家詳細(xì)介紹了python爬取網(wǎng)易云音樂(lè)評(píng)論,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
python實(shí)現(xiàn)定時(shí)自動(dòng)備份文件到其他主機(jī)的實(shí)例代碼
這篇文章主要介紹了python實(shí)現(xiàn)定時(shí)自動(dòng)備份文件到其他主機(jī)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02

