Python應用一 haar人臉檢測

2021-10-12 07:16:52 字數 2146 閱讀 5919

使用國內源來安裝速度更快,參考教程:知乎教程安裝完畢之後,先測試一下opencv是否可以使用,所以可以先輸入一些簡單的**來測試一下。

import cv2

#開啟專案資料夾下面的photo子資料夾下的檔案

img = cv2.imread(r'photo\lena.png'

)cv2.imshow(

"lena"

,img)

cv2.waitkey(

)

然後執行,就可以看到彈出的乙個視窗。

#國際慣例,先開啟

img = cv2.imread(r'photo\lena.png'

)#影象灰度化

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

#匯入已經儲存好人臉資料的檔案來識別人臉

face_img = cv2.cascadeclassifier(r'haarcascade_frontalface_default.xml'

)#這裡scalefactor引數是影象縮小比例,minneighbors是制定目標的重複檢測次數

faces = face_img.detectmultiscale(gray_img,scalefactor=

1.05

,minneighbors=5)

#使用rectangle方法來畫個綠框框

for x,y,w,h in faces:

img = cv2.rectangle(img,

(x,y)

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

0,255,0)

,3)#顯示

cv2.imshow(

"lena"

,img)

cv2.waitkey(

)完成

#把原先開啟的語句注釋掉,改為使用從攝像頭獲取

#img = cv2.imread(r'photo\lena.png')

#開啟攝像頭。這裡的0是指要開啟的攝像頭,有多個攝像頭可以改為1或者2等等

cap = cv2.videocapture(0)

while

true

:#讀取資訊

ret,img = cap.read(

)#檢測是否有捕獲到幀

if ret ==

true

:#灰度化

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

#人臉檢測

#匯入人臉資料

face_img = cv2.cascadeclassifier(r'first/haarcascade_frontalface_default.xml'

)#把進行處理

faces = face_img.detectmultiscale(gray_img,scalefactor=

1.05

,minneighbors=5)

#判斷是否有獲取到人臉,有則畫個框

iflen

(faces)

>0:

for x,y,w,h in faces:

img = cv2.rectangle(img,

(x,y)

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

0,255,0)

,3)#輸出

cv2.imshow(

'capture'

,img)

#等待鍵盤輸入,如果輸入為q,則跳出迴圈,結束

if cv2.waitkey(30)

&0xff

==ord

('q'):

break

else

:break

#釋放資源,關閉視窗

cap.release(

)cv2.destroyallwindows(

)

使用 Haar 級聯人臉檢測

haar 級聯概念 在進行影象分類和跟蹤過程中,提取影象的細節很有用,這些細節也被稱為特徵,對於給定的影象,特徵可能會因區域的大小而有所不同,區域大小也可被稱為視窗大小。即使視窗大小不同,僅在尺度上大小不同的影象也應該有相似的特徵。這種特徵集合被稱為級聯。haar 級聯具有尺度不變性。opencv ...

基於haar特徵的Adaboost人臉檢測技術

基於haar特徵的adaboost人臉檢測技術 本文主要是對使用haar adabbost進行人臉檢測的一些原理進行說明,主要是快找工作了,督促自己複習下 一 adaboost演算法原理 adaboost演算法是一種迭代的演算法,對於一組訓練集,通過改變其中每個樣本的分布概率,而得到不同的訓練集si...

1 Haar和Adaboost人臉識別

coding utf 8 import cv2 import numpy as np 載入xml檔案 絕對路徑載入 相對路徑載入會報錯 載入img cv2.imread face.jpg cv2.imshow src img haar特徵計算 灰度化 gray cv2.cvtcolor img,cv...