我成功安装了opencv-android插件,我也可以构建和运行cvcamera示例应用程序。我有一个opencv项目也包含在eclipse中作为一个库项目。但是,我对如何从我的android应用程序中执行任意opencv方法感到困惑。
例如,我有我的应用程序拍照并保存。然后,我想让opencv加载该图像,以便我可以对其进行一些处理。作为第一步,我正在尝试将该图像加载到opencv Mat中。所以,我根据cvcamera示例中的代码创建了以下类:
import com.opencv.jni.Mat;
public class ExtraOpencvJNI {
static {
try {
System.loadLibrary("android-opencv");
} catch (UnsatisfiedLinkError e) {
throw e;
}
}
public final static native Mat imread(String jarg1);
}
然后,在我的android java代码中,我尝试执行:
Mat img = ExtraOpencvJNI.imread("<path_to_img>");
然而,当我执行上面的java代码时,我得到一个UnsatisfiedLinkError:imread。我知道我必须误解一下opencv-android库如何工作的基本原理,但我找不到其他任何解释如何使用android库调用基本的opencv函数。我可以忽略哪些步骤?
答案 0 :(得分:2)
您可以尝试使用JavaCV,它就是这样:
答案 1 :(得分:0)
您需要在JNI文件(.i)中有相应的imread位代码。例如,在cvcamera示例中,有processor.i和其他一些。据我所知,我还没有看到imread在那里。您应该使用给定的方法,将YUV图像从orroids相机移动到池中,以便用c ++编写的代码进行处理。
答案 2 :(得分:0)
那应该不是问题。我可以在我的应用程序中进行imread。 我的猜测是你忘了
#include <opencv2/highgui/highgui.hpp>