今天給大家分享簡單的圖片人臉識別技術,其實在實際應用中,很多是通過視頻流的方式進行識別,比如人臉識別通道 門禁考勤系統、人臉動態跟蹤識別系統等等。 案例展示 這裡我們還是使用 opencv 中自帶了 haar人臉特征分類器,通過讀取一段視頻來識別其中的人臉。 代碼實現: Python學習交流Q群:9 ...
今天給大家分享簡單的圖片人臉識別技術,其實在實際應用中,很多是通過視頻流的方式進行識別,比如人臉識別通道
門禁考勤系統、人臉動態跟蹤識別系統等等。
案例展示
這裡我們還是使用 opencv 中自帶了 haar人臉特征分類器,通過讀取一段視頻來識別其中的人臉。
代碼實現:
Python學習交流Q群:906715085### # -*- coding: utf-8 -*- __author__ = "小柒" __blog__ = "https://blog.52itstyle.vip/" import cv2 import os def CatchPICFromVideo(window_name, camera_idx, catch_pic_num, path_name): cv2.namedWindow(window_name) cap = cv2.VideoCapture(camera_idx) classfier = cv2.CascadeClassifier(os.getcwd()+"\\haarcascade\\haarcascade_frontalface_alt.xml") color = (0, 255, 0) num = 0 while cap.isOpened(): ok, frame = cap.read() if not ok: break grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) faceRects = classfier.detectMultiScale(grey, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32)) if len(faceRects) > 0: for faceRect in faceRects: x, y, w, h = faceRect img_name = "%s/%d.jpg" % (path_name, num) # print(img_name) image = frame[y - 10: y + h + 10, x - 10: x + w + 10] cv2.imwrite(img_name, image, [int(cv2.IMWRITE_PNG_COMPRESSION), 9]) num += 1 if num > (catch_pic_num): break cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2) font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(frame, 'num:%d/100' % (num), (x + 30, y + 30), font, 1, (255, 0, 255), 4) if num > (catch_pic_num): break # 顯示圖像 cv2.imshow(window_name, frame) c = cv2.waitKey(10) if c & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() if __name__ == '__main__': CatchPICFromVideo("get face", os.getcwd()+"\\video\\kelake.mp4", 100, "E:\\VideoCapture")
動圖有點花,講究著看吧:
如果是捕捉攝像頭,只需要改變以下代碼即可:
# 如果獲取攝像頭,參數修改為 0 即可
cap = cv2.VideoCapture(0)
最後
分享是快樂的,也見證了個人成長歷程,文章大多都是工作經驗總結以及平時學習積累。覺得對你有幫助的記得點贊收藏,喜歡
沒必要藏著掖著。不懂記得點贊評論。