我正在写信给你询问openCV。
首先,我是一名学习openCV的学生,我想在Android应用程序中使用openCV。
到目前为止,当我运行一些应用程序时,我必须下载“openCV Manager App”。
实际上,在运行应用程序时,我不想下载其他应用程序,例如“openCV Manager App”。
所以,我在互联网上搜索了这些问题..基本上,我按照以下链接的建议,
和..
我尝试修改onResum回调方法,如下所示..
public void onResume()
{
super.onResume();
// OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
另外,我试过这种方式,(实际上,我不知道这个代码插在哪里..)
static {
if (!OpenCVLoader.initDebug()) {
// Handle initialization error
}
}
但是,当我运行Application时,总会出现'UnsatisfiedLinkError'。
我认为这个问题的原因是环境设置..
我已尝试过以下流程
我对这个错误有几个星期的问题,我真的需要帮助。
提前致谢。
答案 0 :(得分:0)
我也陷入了困境。我就是这样做的。在主要活动的静态部分,
static {
if (!OpenCVLoader.initDebug()) {
// Handle initialization error
}
else {
System.loadLibrary("jni_part"); // load other native libraries
}
}
不要在onResume()
或其他任何内容中保留任何内容。这就足够了。
在Android.mk文件中,
OPENCV_CAMERA_MODULES:=on # If you want Camera module
OPENCV_INSTALL_MODULES:=on
这对我有用。但这也存在一些问题。静态调用使它慢得多。我使用CvCameraBridgeViewBase
并且最多可以获得5-6 fps。在动态链接中它大约是15-18 fps。所以我在Java部分停止使用OpenCV。现在我使用Android sdk camera,previewCallback并将缓冲区发送到我使用OpenCV实用程序的jni。如果您打算这样做,那么您就不需要OpenCV.intiDebug()
了。您只需要加载本机so文件。