Android определить угол наклона камеры с помощью камеры 2 api - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь получить угол наклона при съемке с камеры. Я использую 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.

Может ли кто-нибудь мне помочь, любая помощь будет принята с благодарностью.

...