Отображение предварительного просмотра camera2 в портретном режиме с помощью CameraGLSurfaceView - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь использовать OpenCV в приложении Android AR с API-интерфейсом Camera2 и OpenGV CameraGLSurfaceView.При использовании приложения в портретном режиме изображение все еще находится в альбомном режиме (оно повернуто на 90 градусов и растянуто).При использовании его в ландшафтном режиме все работает нормально.

Насколько я понимаю, проблема возникает в камере, всегда доставляющей кадры в ландшафтном режиме, и в части OpenGL, влияющей на настройку вида в портретном режиме.Поэтому я попытался переставить и перевернуть изображение в части кода на c ++, а также настроить размер предварительного просмотра для портрета, но в итоге получилось наполовину черным и сжатым (см. Изображение).

Есть ли другой способ решения этой проблемы?

Кто-нибудь имеет опыт использования CameraGLSurfaceView в портретном режиме с камерой2 и может помочь мне в этом?

enter image description here

1 Ответ

0 голосов
/ 18 июня 2019

Я действительно нашел решение, которое работает для меня после хотя бы одного дня попыток, возможно, мне следовало бы больше взглянуть на openGL, прежде чем пытаться ...

Для всех, кто борется с той же проблемой, вы можете изменить texCoord2D в CameraGLRenderBase OpenCV (вы можете расширить его, прослушивая изменения поворота и соответственно меняя координаты). Для портретного режима у меня получилось установить

private final float texCoord2D[] = { 1, 0, 0, 0, 1, 1, 0, 1 }; Преимущество этого подхода заключается в том, что вам не нужно переворачивать код OpenCV, и это, похоже, никак не влияет на частоту кадров.

...