Я пытаюсь использовать OpenCV 2.4.3.2 для создания приложения для камеры и обработки некоторых opencv. Я хотел бы, чтобы он мог иметь несколько ориентаций пользовательского интерфейса, а не только Landscape.Поверните предварительный просмотр камеры в портретную камеру Android OpenCV
Проблема в том, что при изменении ориентации на портрет изображение выходит сбоку.
Я понимаю, что I could just rotate the input image перед обработкой изображения (и, таким образом, оставить ориентацию только ландшафтом), что прекрасно и работает, но не решает проблему, что остальная часть моего интерфейса будет в неправильной ориентации.
Я также попытался использовать this code для поворота камеры 90deg, но он просто не работает.
mCamera.setDisplayOrientation(90);
Он либо не имеет никакого эффекта, а иногда просто вызывает предварительный просмотр, чтобы быть затемнены
Кто-нибудь делал это успешно с OpenCV? Мой класс распространяется из JavaCameraView.
Редактировать
Я сделал улучшение, которое я вращался изображение внутри OpenCV, как он отображается в классе CameraBridgeViewBase.java.
В способе доставки и сделать кадр:
if (canvas != null) {
canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR);
//canvas.drawBitmap(mCacheBitmap, (canvas.getWidth() - mCacheBitmap.getWidth())/2, (canvas.getHeight() - mCacheBitmap.getHeight())/2, null);
//Change to support portrait view
Matrix matrix = new Matrix();
matrix.preTranslate((canvas.getWidth() - mCacheBitmap.getWidth())/2,(canvas.getHeight() - mCacheBitmap.getHeight())/2);
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
matrix.postRotate(90f,(canvas.getWidth())/2,(canvas.getHeight())/2);
canvas.drawBitmap(mCacheBitmap, matrix, new Paint());
... В принципе, это просто roatates входное изображение как так
Это лучше, но я хочу, очевидно, это будет полный экран.
Почему не просто установить screenorientation на Android? –
Я просто добавил изображение, чтобы объяснить поведение, я раньше не объяснял его. Я фактически настраиваю ориентацию на портрет – Jameo
Является ли ваш код основанный на образцах андроида opencv? Я настоятельно рекомендую вам создать код поверх одного из этих образцов, потому что его код уже исправляет проблемы с камерой, которые могут возникнуть в будущем. –