人臉檢測之——學習
此代碼根據haa特征檢測人臉
import cv2
#檢測
#識別
def detect(img, cascade):
#進行人臉的多尺度檢測
rects = cascade.detectMultiScale(img, scaleFactor=1.2, minNeighbors=3,flags=cv2.CASCADE_DO_CANNY_PRUNING, minSize=(3, 3))
if len(rects) == 0:
return []
rects[:,2:] += rects[:,:2]
return rects
# #rtsp://192.168.1.64:554/Streaming/Channels/101?transportmode=unicast&profile=Test
# #rtsp://192.168.1.163:554/live/av0
#haar特征(霍爾),使用adaboost級聯分類器
#安裝ffmpeg可以直接播放視頻
video_capture = cv2.VideoCapture(0)
print(video_capture.isOpened())
#使用haa特征檢測人臉
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
while True:
#讀出視頻幀,ret表示成功或失敗
ret, frame = video_capture.read()
if ret:
#得到系統時鐘時間
t1 = cv2.getTickCount()
#對每一幀檢測人臉
faces = detect(frame,face_cascade)
t2 = cv2.getTickCount()
#將檢測到的人臉畫上正方形標記
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (w, h), (255, 255, 255), 2)
cv2.imshow('imshow', frame)
if cv2.waitKey(1) == ord('q'):
break
cv2.destroyAllWindows()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/266750.html
標籤:其他
