2
回答
菜鸟一个,但目前需要APP开发小程序,用到OpenCv,自己的程序一直无法执行,手机装了opencv manager但APP无法打开,闪退,做了个最简单的摄像头调用也不行,是否过程出错?求好心者帮忙解答一下~

看了很多教程,opencv4android的使用:

1、file——improt——existing project into workspace——opencv3.0.0的项目文件

2、opencv3.0.0导入android项目

properties——android——library——add——opencv3.0.0

3、MainActivity中

(1)MainActivity实现接口CvCameraViewListener2

(2)定义

        private Mat mRgba;

        private CameraBridgeViewBase mOpenCvCameraView;

(3)回调及检测OpenCvmanager

   private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this)      

          {……mOpenCvCameraView.enableView();……}

        public void onResume(){……}

(5)onCreate中实例化CameraBridgeViewBase并设置显示、监听

         mOpenCvCameraView=    (CameraBridgeViewBase)findViewById(R.id.main_

                                                    activity_ surface_view);
        mOpenCvCameraView.setVisibility(CameraBridgeViewBase.VISIBLE);
        mOpenCvCameraView.setCvCameraViewListener(this);

(6)相机启动方法调用

        public void onCameraViewStarted(int width, int height) {
            mRgba = new Mat(height, width, CvType.CV_8UC4);            }

(7)停止时释放

        public void onCameraViewStopped() {
                mRgba.release();       }

(8)   图像处理

public Mat onCameraFrame(CvCameraViewFrame inputFrame) {

      mRgba=inputFrame.rgba();

    return mGray;
    }

(9)// 主函数
    public MainActivity() {
        Log.i(TAG, "Instantiated new " + this.getClass());
            }

4、布局文件中添加

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

5、配置文件添加摄像机权限

    <uses-permission android:name="android.permission.CAMERA" />

举报
sycier
发帖于1年前 2回/202阅
顶部