前提・実現したいこと
現在、Pythonのface_recognitionを用いて読み込んだ顔写真から顔のランドマークの検出を行っています。
そこで、検出した顔の特に目(右目、左目)のランドマークの座標値から、その領域の重心(片目におけるその重心)を計算したいです。
よろしくお願いします。
発生している問題・エラーメッセージ
ランドマークの検出は出来ましたが、そこから重心の計算ができません。
該当のソースコード
Python
1# 画像を読み込む。 2img = face_recognition.load_image_file("顔画像ファイル") 3# 画像から顔の領域を検出する。 4face_locs = face_recognition.face_locations(img, model="cnn") 5# 顔の各部位を検出する。 6facial_landmarks = face_recognition.face_landmarks(img, face_locs) 7#両目のランドマークの座標を取り出す 8left_eye = face["left_eye"] 9right_eye = face["right_eye"] 10 11#重心計算 12for i in left_eye: #左目 13 M = cv2.moments(i) 14 x_l=(M["m10"] / M["m00"]) 15 y_l=(M["m01"] / M["m00"]) 16 17for i in right_eye: #右目 18 M = cv2.moments(i) 19 x_r=(M["m10"] / M["m00"]) 20 y_r=(M["m01"] / M["m00"]) 21 22print(x_l) 23print(y_l) 24print(x_r) 25print(y_r) 26 27# 280.0 290.6924686192468619 300.0 310.5038520801232665 32#
試したこと
Pythonのリストに格納した座標値から重心を求める方法について調べたが、出てこなかった。
補足情報(FW/ツールのバージョンなど)
リストの中身
left_eye=[129, 321), (148, 304), (174, 306), (198, 326), (173, 330), (147, 331)]
right_eye=[(298, 324), (319, 301), (345, 300), (367, 316), (348, 326), (322, 327)]
環境
Python(3.8)
Jupiternotebook(6.4)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。