python之動態人臉識別

2021-10-04 09:22:19 字數 3024 閱讀 3742

執行準備

•所需檔案:haarcascade_frontalface_default.xml

•獲取方式:

1.開啟cmd,輸入指令:pip install -i cv2

2.在安裝python的目錄下面,依次開啟資料夾\lib\site-packages\cv2\data

所需檔案就在裡面了

實現效果:開啟電腦攝像頭,捕獲人臉。

#1.導入庫

import cv2

#2.開啟攝像頭(引數0保持攝像頭不關閉)

capture = cv2.videocapture(0)

#3.載入人臉模型(費舍爾人臉建模,路徑需改)

face_model = cv2.cascadeclassifier(r'c:\users\zs\desktop\python\haarcascade_frontalface_default.xml'

)#3獲取攝像頭的實時畫面

while

true

: result,image = capture.read(

)#4.影象的灰度處理(opencv不適用rgb通道,用gbr,所以需轉化)

gray = cv2.cvtcolor(image,cv2.color_rgb2gray)

#5.檢查人臉(120x120的識別框)

faces = face_model.detectmultiscale(gray,

1.1,3,

0,(120

,120))

#6.標記人臉(10是線的寬度 ,元組三元素是gbr,2是線寬度)

for(x,y,w,h)

in faces:

cv2.rectangle(image,

(x,y)

,(x+w,y+h),(

0,255,0)

,2)#7.顯示

if cv2.imshow(

"chuangkou"

,image)

:break

#8.暫停視窗 5us讀取一幀

cv2.waitkey(5)

&0xff

==ord

("q"

)#8.2釋放資源

capture.release(

)#9.銷毀視窗

cv2.destroyallwindows(

)

下面**也可實現人臉識別,出現視窗課按下鍵盤的』esc』關閉退出。

注意:haarcascade_eye.xml檔案也在python目錄資料夾\lib\site-packages\cv2\data之下

如果報錯,原因可能是你路徑有問題,注意單引號外面還有乙個』r』,這是用以區分python目錄符號\,你可以將haarcascade_eye.xml和haarcascade_frontalface_default.xml檔案拷貝至你執行的同個目錄下,再去執行。

import numpy as np

import cv2

# 人臉識別分類器

facecascade = cv2.cascadeclassifier(r'c:\users\zs\desktop\python\haarcascade_frontalface_default.xml'

)# 識別眼睛的分類器

pathf =r'c:\users\zs\desktop\python\haarcascade_eye.xml'

eyecascade = cv2.cascadeclassifier(pathf)

# 開啟攝像頭

cap = cv2.videocapture(0)

ok =

true

while ok:

# 讀取攝像頭中的影象,ok為是否讀取成功的判斷引數

ok, img = cap.read(

)# 轉換成灰度影象

gray = cv2.cvtcolor(img, cv2.color_bgr2gray)

# 人臉檢測

faces = facecascade.detectmultiscale(

gray,

scalefactor=

1.2,

minneighbors=

5,

minsize=(32

,32))

# 在檢測人臉的基礎上檢測眼睛

result =

for(x, y, w, h)

in faces:

fac_gray = gray[y:

(y+h)

, x:

(x+w)

] eyes = eyecascade.detectmultiscale(fac_gray,

1.3,2)

# 眼睛座標的換算,將相對位置換成絕對位置

for(ex, ey, ew, eh)

in eyes:

(x+ex, y+ey, ew, eh)

)# 畫矩形

for(x, y, w, h)

in faces:

cv2.rectangle(img,

(x, y)

,(x+w, y+h),(

255,0,

0),2

)for

(ex, ey, ew, eh)

in result:

cv2.rectangle(img,

(ex, ey)

,(ex+ew, ey+eh),(

0,255,0)

,2)

cv2.imshow(

'video'

, img)

k = cv2.waitkey(1)

if k ==27:

# press 'esc' to quit

break

cap.release(

)cv2.destroyallwindows(

)

python3 8動態人臉識別

pip install dlib pip python opencv coding utf 8 從視屏中識別人臉,並實時標出面部特徵點 import dlib 人臉識別的庫dlib import cv2 影象處理的庫opencv 使用特徵提取器get frontal face detector de...

python人臉識別

talk is cheap,show you the code 參考自 這裡 無注釋版 注釋版 coding utf 8 import cv2 這裡的 cascadeclassifier 是 層級分類器 的意思。為什麼要 分層 呢?剛才提到在進行機器分析 時,其實是對整個從上到下,從左到右,乙個畫素...

python人臉識別

from numpy import 引入科學計算庫 import cv2 引入opencv庫 face cascade cv2.cascadeclassifier haarcascade frontalface alt.xml 載入haar特徵級聯表 img cv2.imread my.jpg 讀取...