Last active
August 17, 2021 15:49
-
-
Save kurozumi/04a75695dc32c46586be0d69e6a8243f to your computer and use it in GitHub Desktop.
【Python】OpenCVを使ってマックの内蔵カメラを起動して画面に人の顔が認識されたら白枠を表示させる方法
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
import cv2 | |
if __name__ == "__main__": | |
# 内蔵カメラを起動 | |
cap = cv2.VideoCapture(0) | |
# OpenCVに用意されている顔認識するためのxmlファイルのパス | |
cascade_path = "/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" | |
# カスケード分類器の特徴量を取得する | |
cascade = cv2.CascadeClassifier(cascade_path) | |
# 顔に表示される枠の色を指定(白色) | |
color = (255,255,255) | |
while True: | |
# 内蔵カメラから読み込んだキャプチャデータを取得 | |
ret, frame = cap.read() | |
# モノクロで表示する | |
#frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) | |
# 顔認識の実行 | |
facerect = cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=2, minSize=(10,10)) | |
# 顔が見つかったらcv2.rectangleで顔に白枠を表示する | |
if len(facerect) > 0: | |
for rect in facerect: | |
cv2.rectangle(frame, tuple(rect[0:2]), tuple(rect[0:2]+rect[2:4]), color, thickness=2) | |
# 表示 | |
cv2.imshow("frame", frame) | |
# qキーを押すとループ終了 | |
if cv2.waitKey(1) & 0xFF == ord('q'): | |
break | |
# 内蔵カメラを終了 | |
cap.release() | |
cv2.destroyAllWindows() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment