執行準備:
•所需檔案: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 讀取...