Я пытаюсь получить угол наклона при съемке с камеры. Я использую Camera 2 API для этой функции. Я перешел по ссылке ниже для этой функциональности.
[ Получить угол зрения android устройства камеры ] [1]: Используя эту ссылку, я смог получить ширину (L) объекта и расстояние (d) до объекта. Следующий код объясняет вычисление угла.
public float getHFOV(String CameraId ,float zoom_value) {
try {
mCameraCharacteristics= mManager.getCameraCharacteristics(CameraId);
} catch (CameraAccessException e) {
e.printStackTrace();
}
SizeF sensorSize = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
sensorSize = mCameraCharacteristics.get(SENSOR_INFO_PHYSICAL_SIZE);
}
float[] focalLengths = new float[0];
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
focalLengths = mCameraCharacteristics.get(CameraCharacteristics.LENS_INFO_AVAILABLE_FOCAL_LENGTHS);
}
if (focalLengths != null && focalLengths.length > 0) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
return (float) (2.0f * atan(sensorSize.getWidth() / (2.0f * focalLengths[0])));
}
}
return 1.1f;
}
Приведенный выше код получит ширину и расстояние до камеры и определит угол изображения. Результат всегда дает только одно значение (например: 1,16 радиан). Если камера наклоняется (перемещается / изгибается), она выдает то же значение. Я хочу получить точный угол наклона, например, 30 градусов, 40 градусов ... и т. Д. c.
Может ли кто-нибудь мне помочь, любая помощь будет принята с благодарностью.