Как получить ориентацию камеры в NDK - PullRequest
0 голосов
/ 03 декабря 2018

Я получаю NDK_Image от ARCore на стороне NDK проекта.Мой AImage поворачивается из-за ориентации камеры.

Как я могу получить значение ориентации камеры внутри NDK ?

В документах Camera NDK, которые я нашелthis ACAMERA_JPEG_ORIENTATION

Это даже дает пример кода:

private int getJpegOrientation(CameraCharacteristics c, int deviceOrientation) {
    if (deviceOrientation == android.view.OrientationEventListener.ORIENTATION_UNKNOWN) return 0;
    int sensorOrientation = c.get(CameraCharacteristics.SENSOR_ORIENTATION);
    // Round device orientation to a multiple of 90
deviceOrientation = (deviceOrientation + 45) / 90 * 90;
    // Reverse device orientation for front-facing cameras
    boolean facingFront = c.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT;
    if (facingFront) deviceOrientation = -deviceOrientation;
    // Calculate desired JPEG orientation relative to camera orientation to make
    // the image upright relative to the device orientation
    int jpegOrientation = (sensorOrientation + deviceOrientation + 360) % 360;
    return jpegOrientation;
}

Но это не объясняет, как использовать, и я не могу найти библиотеку для CameraCharascteristics.

Было бы хорошим примером того, как получить ориентацию камеры в NDK.Спасибо!

1 Ответ

0 голосов
/ 03 декабря 2018

Этот пример кода на Java есть там по ошибке.

Из C ++ вы можете вызвать ACameraManager_getCameraCharacteristics () с тегом ACAMERA_SENSOR_ORIENTATION и тегом ACAMERA_LENS_FACING .

OrientationEventListener.ORIENTATION_UNKNOWN 1012 * константа -1 .CameraCharacteristics.LENS_FACING_FRONT или ACAMERA_LENS_FACING_FRONT равно 0.

...