java - 如何镜像显示OpenCV JavaCameraView前置摄像头(Android)?

标签 java android opencv android-camera

我目前正在android中尝试openCV的java示例进行人脸检测。但是,相机创建的 View 不是镜像成像。我尝试将 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) 返回黑色显示。

最佳答案

制作镜像的最小更改是将以下代码添加到您的CvCameraViewListener2中:

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

这不是最有效的方法,但可能可以接受。在我相当弱的测试设备上,这会将 FPS 从 7.17 降低到 7.15

关于java - 如何镜像显示OpenCV JavaCameraView前置摄像头(Android)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47497345/

相关文章:

java - 在 Android 中以位图、jpeg 或 png 图像形式查看 PowerPoint XML

android - 监听 Internet 变化(无网络检测)

android - 即使调用onCreateMenu,Android菜单也不可见

java - 使用 OpenCV 查找图像上数字的边界框

java - 我不明白这个 Java 示例中的代码行 "temp.next = this;"

Java:以 iOS/Android/Angular 作为客户端进行身份验证和授权

android - 如何在 Android 中读取彩信数据?

python - OpenCV 立体置信度

java - 循环访问共享相同父类(super class)的不同对象的列表并获取一种特定类型

android - 如何检测 HTC desire 上按下的导航按钮?