【问题标题】:OpenCV Android Camera Not FullscreenOpenCV Android相机不是全屏
【发布时间】:2016-08-08 17:19:19
【问题描述】:

我正在为 Android 制作一个执行大量图像处理的 OpenCV 应用程序。为了提高帧速率,我将帧大小限制为 640 x 480,如下所示:

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
    @Override
    public void onManagerConnected(int status) {
        switch(status) {
        case LoaderCallbackInterface.SUCCESS:
        {
            mOpenCvCameraView.setMaxFrameSize(640, 480);
            Log.i(TAG, "Loaded Successfully");
            mOpenCvCameraView.enableView();
            System.loadLibrary("opencvnative");

            break;
        }
        default:
        {
            super.onManagerConnected(status);
        }
        }
    }
};

其中 mOpenCvCameraView 是 JavaCameraView 类型。不幸的是,这种方法使框架小于屏幕尺寸。降低分辨率后是否可以拉伸框架以适应屏幕,还是有更好的方法来解决这个问题?

提前感谢您的帮助!

【问题讨论】:

    标签: android opencv android-camera


    【解决方案1】:

    Step1:首先你必须把这些放在AndroidManifest.xml中

    <supports-screens android:resizeable="true"
        android:smallScreens="true"
        android:normalScreens="true"
        android:largeScreens="true"
        android:anyDensity="true" />
    
    <uses-permission android:name="android.permission.CAMERA"/>
    
    <uses-feature android:name="android.hardware.camera" android:required="false"/>
    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
    <uses-feature android:name="android.hardware.camera.front" android:required="false"/>
    <uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/>
    

    第 2 步:在 AndroidManifest.xml 中更改此行

    android:theme="@style/AppTheme">
    
               to 
    
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    

    第三步:然后改变

    <activity android:name=".MainActivity">
    
      to
    
    <activity android:name=".MainActivity"
            android:screenOrientation="landscape"
            android:configChanges="keyboardHidden|orientation">
    

    步骤 4:完成上述操作后,将此行放到 java 类的 onCreate() 方法中

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    

    如果你成功完成了这些,我希望它能正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 2021-01-20
      • 2015-03-19
      相关资源
      最近更新 更多