0
我正在使用面向Android的FaceDetection API進行臉部和眼部檢測。我能夠檢測和繪製矩形周圍的臉部,但是我不明白爲什麼我所有的眼睛座標都設置爲(0,0)。我看到所有設備都不支持眼睛檢測,但它說Point對象設置爲null,而不是(0,0),所以我不明白這裏發生了什麼事情。 。爲什麼我的FaceDetectionListener無法檢測到眼睛座標
這裏是我的FaceDetectionListener:
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;
}
}
}
爲什麼我的眼點的座標越來越設置爲(0,0)。我正在Galaxy S7上測試,我發現很難相信它不支持眼睛檢測。我很樂意使用OpenCV來解決這個問題,但我寧願堅持使用Android SDK,因爲我已經可以檢測到面(如果可能)。感謝您的幫助。
「可能不支持所有設備」非常含糊。是否有任何支持的設備列表? – LaneL
不是我所知道的。 Camera2 API具有https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES的明確列表,但只有當camera2硬件級別爲限制或更高時纔會映射到Camera1;即使舊相機API具有填充的可選字段,LEGACY級別也不會列出FACE_DETECT_MODE_FULL。 –