因此,我使用內置facedector的androids來檢測和確定位圖中位置的位置。現在它可以工作,並告訴我:自信,eyesDistance和中點,但每當我嘗試獲得姿勢它總是返回0,無論我嘗試使用什麼圖像。Android Facedetector姿勢值始終爲0
這是我用得到的姿勢代碼:
poseString = "Pose: (" + getFace.pose(FaceDetector.Face.EULER_X) + ","
+ getFace.pose(FaceDetector.Face.EULER_Y) + ","
+ getFace.pose(FaceDetector.Face.EULER_Z) + ")";
,這裏是我的代碼使用方法:
arrayFaces = new FaceDetector(picWidth, picHeight, NUM_FACES);
arrayFaces.findFaces(sourceImage, getAllFaces);
for (int i = 0; i < getAllFaces.length; i++) {
getFace = getAllFaces[i];
try {
PointF eyesMP = new PointF();
getFace.getMidPoint(eyesMP);
poseString = "Pose: ("+ getFace.pose(FaceDetector.Face.EULER_X) + ","
+ getFace.pose(FaceDetector.Face.EULER_Y) + ","
+ getFace.pose(FaceDetector.Face.EULER_Z) + ")";
EULER_X = getFace.EULER_X;
EULER_Y = getFace.EULER_Y;
EULER_Z = getFace.EULER_Z;
eyesDistance[i] = getFace.eyesDistance();
eyesMidPts[i] = eyesMP;
if (DEBUG) {
currentx = eyesMidPts[i].x;
currenty = eyesMidPts[i].y;
betweeneyes = getFace.eyesDistance();
Log.d("currentx", currentx + "");
Log.d("currenty", currenty + "");
Log.d("betweeneyes", betweeneyes + "");
Log.d("EULER", "EULER_X: " + EULER_X + "EULER_Y: " + EULER_Y + "EULER_Z: " + EULER_Z);
Log.i("Face", i + " " + getFace.confidence() + " "
+ getFace.eyesDistance() + " " + "Pose: ("
+ getFace.pose(FaceDetector.Face.EULER_X) + ","
+ getFace.pose(FaceDetector.Face.EULER_Y) + ","
+ getFace.pose(FaceDetector.Face.EULER_Z) + ")"
+ "Eyes Midpoint: (" + eyesMidPts[i].x + ","
+ eyesMidPts[i].y + ")");
}
} catch (Exception e) {
if (DEBUG)
Log.e("Face", i + " is null");
}
}
我們可以看到代碼實際使用'FaceDetector'嗎?據我可以從文檔中知道,你應該傳遞你自己的'Face []'數組,然後直接從這些對象中讀取數據。 – sastraxi 2012-04-03 01:04:00
當然抱歉我現在將它添加 – Peter 2012-04-03 01:08:22
檢查此代碼,因爲它爲我和其他人工作http://stackoverflow.com/questions/9269891/android-face-detection/9272063#9272063 – Sameer 2012-04-07 11:13:03