haar的簡單應用 2

2022-02-24 16:01:24 字數 1569 閱讀 8678

上次對進行了人臉識別,這次對攝像頭捕獲的內容進行識別

直接寫注釋來解釋

import cv2

def catchusbvideo(window_name, camera_idx): #定義乙個函式來實現人臉識別

cv2.namedwindow(window_name)  #引數window_name給建立的視窗命名

cap = cv2.videocapture(camera_idx)

# 告訴opencv使用人臉識別分類器,還是那個opencv自帶的分類器,目錄結構和《haar的簡單應用》一樣

classfier = cv2.cascadeclassifier("../cascades/haarcascade_frontalface_default.xml")

# 綠色勾邊,rgb格式

color = (0, 255, 0)

while cap.isopened():  #迴圈檢測每一幀

ok, frame = cap.read() # 讀取一幀資料

if not ok:

break

# 將當前幀轉換成灰度影象

grey = cv2.cvtcolor(frame, cv2.color_bgr2gray)

# 人臉檢測,1.2和2分別為縮放比例和需要檢測的有效點數

facerects = classfier.detectmultiscale(grey, scalefactor=1.2, minneighbors=3, minsize=(32, 32))

if len(facerects) > 0: # 大於0則檢測到人臉

for facerect in facerects: # 單獨框出每一張人臉

x, y, w, h = facerect

cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 3) #5控制綠色框(勾邊)的粗細

# 顯示影象

cv2.imshow(window_name, frame)

c = cv2.waitkey(10)

if c & 0xff == ord('q'):  #按"q"退出

break

# 釋放攝像頭並銷毀所有視窗

cap.release()

cv2.destroyallwindows()

if __name__ == '__main__':  #make a script both importable and executable讓你寫的指令碼模組既可以匯入到別的模組中用,另外該模組自己也可執行,注意前後各有有兩個下劃線

catchusbvideo("facerect", 0)

執行結果截圖。嗯...攝像頭畫素有點低,而且還不會聚焦...凑活看吧,籃框是識別的,綠框是攝像頭識別的

我試了半天.mp4不知道怎麼上傳

這個簡單的人臉識別只適用於正臉清晰的

Python應用一 haar人臉檢測

使用國內源來安裝速度更快,參考教程 知乎教程安裝完畢之後,先測試一下opencv是否可以使用,所以可以先輸入一些簡單的 來測試一下。import cv2 開啟專案資料夾下面的photo子資料夾下的檔案 img cv2.imread r photo lena.png cv2.imshow lena i...

js簡單應用2

1 資料型別的強制轉換 js中提供了兩個函式可以把字串強制轉成數 parseint parsefloat 如果我把 123 當做字串.案例如下 讓使用者輸入兩個數,並計算和.var num1 window.prompt 請輸入乙個數 var num2 window.prompt 請輸第二個數 var...

Haar類特徵及其在視覺跟蹤中的應用

看haar類特徵時間比較久了,一直搞不清楚它的定義以及它在visual tracking 中的應用,今天總算有點感覺。同時也意識到,必須對自己的體會和理解做乙個簡單的整理。每個haar類特徵分類器是由乙個矩特徵 閾值及標誌不等號方向的數組成。其中特徵不僅與矩形的尺度有關,還與矩形所處的位置有關。覺得...