ウェブカメラを使って、顔を認識し顔を矩形で囲みます。そこまでは出来ました。
その矩形の中心を求めるようなコードがなかなかできないので困っています。
どこにどんなコードを書き加えれば良いか教えて頂きたいです!
お願いします!
python
1import cv2 2import os 3 4cascade_path = r"C:\Users\saito\PycharmProjects\kenkyu\venv\Lib\site-packages\cv2\data\haarcascade_frontalface_alt.xml" 5 6#カスケード分類器の特徴量を取得する 7cascade = cv2.CascadeClassifier(cascade_path) 8 9# カメラからキャプチャー 10cap = cv2.VideoCapture(0) 11 12color = (255, 255, 255) #白 13 14while(True): 15 16 # 動画ストリームからフレームを取得 17 ret, frame = cap.read() 18 19 #物体認識(顔認識)の実行 20 facerect = cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=2, minSize=(10, 10)) 21 22 for rect in facerect: 23 #検出した顔を囲む矩形の作成 24 cv2.rectangle(frame, tuple(rect[0:2]),tuple(rect[0:2] + rect[2:4]), color, thickness=2) 25 center = rect[0:2] + rect[2:4] / 2 26 cv2.drawMarker(rect, center, (0, 255, 255), markerType=cv2.MARKER_DIAMOND) 27 # 表示 28 cv2.imshow("Show FLAME Image", frame) 29 30 # qを押したら終了。 31 k = cv2.waitKey(1) 32 if k == ord('q'): 33 break 34 35cap.release() 36cv2.destroyAllWindows()
表示されているエラー
SystemError: new style getargs format but argument is not a tuple
矩形の中心の意味は? 上記のコードでは、複数の矩形が得られているようですが、それらの全ての矩形の中心という事でしょうか?
そういうことで大丈夫です!