【发布时间】:2011-07-04 19:03:48
【问题描述】:
我成功安装了 opencv-android 插件,我也可以构建和运行 cvcamera 示例应用程序。我也将 eclipse 中的 opencv 项目作为库项目包含在内。但是,我对如何在我的 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 函数。我忽略了哪些步骤?
【问题讨论】:
-
我最终弄清楚了如何让这一切正常工作 - 基本上你必须用 C++ 编写所有 openCV 内容,然后像 cvcamera 示例中一样通过 JNI 调用它。我希望 opencv android 会像 python opencv API 一样公开一个完全 java opencv API,但没有运气。
标签: android opencv android-ndk