ライブラリを読み込む
ライブラリを読み込みます。
import cv2 #opencvライブラリ
from picamera2 import Picamera2 #カメラライブラリ
カスケード分類器ファイルを読み込む
カスケード分類器ファイルを読み込みます。
strPass="/usr/local/lib/python3.9/dist-packages/cv2/data/"
face_detector=cv2.CascadeClassifier(strPass+"haarcascade_frontalface_alt.xml")
face2_detector=cv2.CascadeClassifier(strPass+"haarcascade_profileface.xml")
face3_detector=cv2.CascadeClassifier(strPass+"haarcascade_eye.xml")
映像から顔を検出する
映像から顔を検出します。
cv2.startWindowThread() #windowを作成
#カメラを起動
picam2=Picamera2()
picam2.configure(picam2.create_preview_configuration(main={"format": 'XRGB8888', "size": (640, 480)}))
picam2.start()
while True:
im=picam2.capture_array() #カメラ画像を取得
grey=cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) #グレースケール化
#分類器1
faces=face_detector.detectMultiScale(grey, 1.1, 5)
for(x, y, w, h) in faces:
cv2.rectangle(im, (x, y), (x+w, y+h), (255, 0, 0))
#分類器2
faces=face2_detector.detectMultiScale(grey, 1.1, 5)
for(x, y, w, h) in faces:
cv2.rectangle(im, (x, y), (x+w, y+h), (0, 255, 0))
#分類器3
faces=face3_detector.detectMultiScale(grey, 1.1, 5)
for(x, y, w, h) in faces:
cv2.rectangle(im, (x, y), (x+w, y+h), (0, 0, 255))
cv2.imshow("Camera", im) #表示
#escキーを入力されたらクローズ
key=cv2.waitKey(1)
if key == 27:
break
picam2.stop()
cv2.destroyAllWindows()
コメント