在Android应用中运行javacv 1.5时出错

时间:2019-05-14 07:58:21

标签: java android android-gradle build.gradle javacv

我试图用FFmpegFrameGrabber打开一个ONVIF WIFI摄像机,以在Android Studio的javacv中使用。 我将frameGrabber.grabImage()发送到AsyncTask 在SurfaceView的渲染方法中:

        '''
        Mat mat0= new Mat(1080,1920,CV_8UC1);
        Mat mat=new Mat(1080,1920,CV_8UC3);;

         TestTask task = new TestTask();
        task.execute();
        mat = new ToMat().convert(frame);
        if (!(mat ==null)){
         cvtColor(mat, mat0, CV_BGR2GRAY);
         clahe.apply(mat0, mat0);
         frame = converterToMat.convert(mat0);
         bitmap = converterToBitmap.convert(frame);
        '''            

这是AsyncTask:

         '''
        private class TestTask extends AsyncTask<Void, Void,                                                                                     org.bytedeco.javacv.Frame> /* Params, Progress, Result */ {
               @Override
        protected Frame doInBackground(Void... params) {
        try {

        frame = frameGrabber.grabImage();
            Log.d(LOGTAG, "frameGrabber is grabImage");
        } catch (Exception e) {
            e.printStackTrace();

        };
        return frame;
    }

'''
构建成功,但运行时出现此错误:

   Caused by: ...(address)...     couldn't find "libopencv_imgproc.so" at java.lang.Runtime.loadLibrary0(Runtime.java:1012)

因为我确保使用javaCV 1.5,所以在下面使用这些依赖项:

        '''
        implementation group: 'org.bytedeco', name: 'javacpp', version: '1.5'
        implementation  group: 'org.bytedeco', name: 'javacv-platform', version: '1.5'
        implementation group: 'org.bytedeco', name: 'opencv-platform', version: '4.0.1-1.5'
        implementation group: 'org.bytedeco', name: 'ffmpeg', version: '4.1.3-1.5'

请帮助我,我能解决这个问题吗?

0 个答案:

没有答案