Android用FaceDetection APIを使用して顔や目を検出するAndroidアプリで作業しています。私は顔の周りに長方形を検出して描くことができますが、なぜ私の目の座標がすべて(0,0)に設定されているのか理解できません。Android用FaceDetectionListenerで目の座標が検出されない理由
documentationを読んでいると、私は目の検出がすべてのデバイスでサポートされていないことを知っていますが、Pointオブジェクトは(0,0)ではなくnullに設定されているため、ここで何が起こっているのか分かりません。
は、ここに私のFaceDetectionListenerです:
目のための私のポイントは、(0,0)に設定されているばかり座標なぜprivate List<Rect> faceRects;
private Point leftEye;
private Point rightEye;
@Override
public void onFaceDetection(Camera.Face[] faces, Camera camera) {
if (faces.length > 0) {
faceRects = new ArrayList<Rect>();
for (int i = 0; i < faces.length; i++) {
int left = faces[i].rect.left;
int right = faces[i].rect.right;
int top = faces[i].rect.top;
int bottom = faces[i].rect.bottom;
Rect uRect = new Rect(left, top, right, bottom);
faceRects.add(uRect);
leftEye = faces[i].leftEye; //***THIS IS (0,0) EVEN WHEN FACE IS DETECTED
rightEye = faces[i].rightEye;
}
}
}
。私はGalaxy S7でテストしています。私はそれが目の検出をサポートしていないと信じるのは難しいと思っています。私はOpenCVを使用してこの問題の解決策を公開していますが、私はすでに顔を検出できるので(おそらく)、Android SDKを使用したいと思います。助けてくれてありがとう。
"すべてのデバイスでサポートされていない可能性があります"は非常に曖昧です。サポートされているデバイスの一覧はありますか? – LaneL
私は気づいていません。 Camera2 APIにはhttps://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODESの明示的なリストがありますが、カメラ2のハードウェアレベルがLIMITED以上の場合、Camera1 APIのみにマップされます。古いカメラAPIにオプションのフィールドが設定されていても、LEGACYレベルはFACE_DETECT_MODE_FULLに決して表示されません。 –