java - 在 Android 应用程序中运行 javacv 1.5 时出错
问题描述
我试图用 FFmpegFrameGrabber 打开一个 ONVIF WIFI CAMERA 以在 Android studio 的 javacv 中使用。我在 SurfaceView 的渲染方法中将 frameGrabber.grabImage() 发送到 AsyncTask:
'''
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);
'''
这是异步任务:
'''
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'
请帮帮我,我能解决吗?