7,15

тоящее время я экспериментирую с примером Java OpenCV по обнаружению лиц в Android. Однако созданный камерой вид не отображается в зеркальном отображении. Я попытался установитьandroid:screenOrientation вreverseLandscape но это не сработало. Я хотел бы попытаться добиться этого, какие-либо предложения?

Код в макете:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<org.opencv.android.JavaCameraView
    android:id="@+id/fd_activity_surface_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:screenOrientation="reverseLandscape"
    />

инстанцировании

private CameraBridgeViewBase mOpenCvCameraView;

на OpenCV загружен

mOpenCvCameraView.setCameraIndex(1);
mOpenCvCameraView.enableView();

метод onCreate ()

mOpenCvCameraView = findViewById(R.id.fd_activity_surface_view);
mOpenCvCameraView.setCvCameraViewListener(this);

mOpenCvCameraView не содержал метод setDisplayOrientation (), а setRotation (180) возвращал меня с черным дисплеем.

 Alex Cohn27 нояб. 2017 г., 01:32
Попробуйте mOpenCvCameraView.setScaleX (-1)
 Alex Cohn26 нояб. 2017 г., 17:39
Чтобы установить индекс камеры наCameraBridgeViewBase .CAMERA_ID_FRONT.
 SpencerChantler12326 нояб. 2017 г., 18:13
@AlexCohn, он все еще не производит зеркальное отображение
 Alex Cohn27 нояб. 2017 г., 01:38
Вы можете сделать это через макетатрибут android: scaleX, слишком.
 Pratik Vyas03 апр. 2018 г., 08:48
@AlexCohn: Спасибо, это сработало !!!

Ответы на вопрос(1)

Решение Вопроса

вашCvCameraViewListener2:

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
    Mat rgba = inputFrame.rgba();
    Core.flip(rgba, rgba, 1);
    return rgba;
}

Это не самый эффективный способ, но, вероятно, приемлемый. На моем довольно слабом тестовом устройстве это уменьшает FPS от7,17 в7,15.

Ваш ответ на вопрос