2016-11-23 1 views
0

Je souhaite connaître la distance entre un objet et un appareil Android à l'aide de l'API android camera2. Dans CaptureCallback, j'obtiens la valeur par result.get(CaptureResult.LENS_FOCUS_DISTANCE) et je vérifie LENS_STATE, CONTROL_AF_MODE, CONTROL_AF_STATE en même temps. Ils sont "STATIONNAIRE", CONTINUOUS_PICTURE et PASSIVE_FOCUSED. Je pense que la distance de mise au point devrait être valide et la distance d'un objet à l'appareil Android devrait être 1/focus_distance. Mais en fait, la valeur calculée est totalement différente de la distance réelle. Qu'est ce qui ne va pas avec ça? Est-ce que LENS_FOCUS_DISTANCE est la valeur correcte pour l'estimation de la distance? Quelqu'un a une idée?Comment obtenir la distance entre un objet et un appareil Android à l'aide de l'API camera2

final CameraCaptureSession.CaptureCallback captureCallbackListener = new CameraCaptureSession.CaptureCallback() { 
    @Override 
    public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) { 
     super.onCaptureCompleted(session, request, result); 
     Log.e(TAG, String.format("captureCallbackListener %s-%f", lensStateToString(result.get(CaptureResult.LENS_STATE)), result.get(CaptureResult.LENS_FOCUS_DISTANCE))); 
     Log.e(TAG, String.format("AF mode %s-%s", ctlAfModeToString(result.get(CaptureResult.CONTROL_AF_MODE)), ctlAfStateToString(result.get(CaptureResult.CONTROL_AF_STATE)))); 
    } 
}; 
+0

Possible duplicata de [Est-il possible de mesurer la distance à l'objet avec la caméra?] (Http://stackoverflow.com/questions/4588485/is-it-possible-to-measure-distance-to-object-with- appareil photo) – SaravInfern

+0

Pour éviter le vote négatif, essayez d'abord d'effectuer une recherche dans vos requêtes, puis postez la question –

Répondre

0

Veuillez vérifier la valeur CameraCharacteristics.LENS_INFO_FOCUS_DISTANCE_CALIBRATION. Si elle est UNCALIBRATED ou APPROXIMATE, la valeur de LENS_FOCUS_DISTANCE ne sera probablement pas proche de la réalité. Et même avec CALIBRATED, plus les objets sont éloignés, plus il y aura d'erreurs - à la caméra, tout ce qui dépasse la distance hyperfocale (quelques mètres au mieux) commence à être impossible à mesurer avec précision.