python_opencv這個庫功能還是非常強大的,可以讀取本地攝像頭的內容,并且可以直接使用不同分類器對人臉進行識別。這里主要展示使用opencv實現對筆記本攝像頭中的人臉實時識別和標注。主要是筆記本攝像頭實時 獲取畫面,然后獲取其中人臉的位置,并在人臉位置的正方形進行標注。代碼主要如下:
# 導入cv模塊
import cv2
cap = cv2.VideoCapture(0)
# 告訴OpenCV使用人臉識別分類器
# 分類器下載地址 https://github.com/opencv/opencv/tree/master/data/haarcascades
classfier = cv2.CascadeClassifier("xml\\haarcascade_frontalface_default.xml")
while True:
# capture frame-by-frame
ret, frame = cap.read()
# our operation on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 人臉檢測,1.2和2分別為圖片縮放比例和需要檢測的有效點數
faceRects = classfier.detectMultiScale(gray, 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), (0, 255, 0), 2)
# 展示結果
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'): # 按q鍵退出
break
# when everything done , release the capture
cap.release()
cv2.destroyAllWindows()
分類器可以去github上直接下載,也可以自己訓練
最終結果展示如下圖
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
