6

我假设在这里使用 OpenCV 代码:http: //github.com/billmccord/OpenCV-Android#readme 是使用 NDK 在 Android 上使用 OpenCV 的最佳方式。

我仍然对如何从函数的 C 定义到我在 Android 项目的 OpenCV.java 中声明的函数感到困惑

cvFindContours( void*  img,  CvMemStorage*  storage, 
                CvSeq**  firstContour, int  cntHeaderSize, 
                int  mode, 
                int  method, CvPoint offset ) --> findContours(int[] 
data, int w, int h) ) 

任何帮助/指针表示赞赏,甚至从哪里开始解决这个问题。我目前想使用cvHoughCircles, cvHoughCircles(CvArr* image, void* circle_storage, int method, double dp, double min_dist, double param1 = 100, double param2 = 300, int min_radius = 0, int max_radius = 0};

我如何用 ndk for android 在 java 中编写这个?

4

2 回答 2

6

您的应用程序需要 C 接口吗?OpenCV 实际上认为它已弃用/完成,新的 API 是 C++。此接口和示例校准应用程序的端口在这里:http ://code.google.com/p/android-opencv/

我花了一段时间才在新的 C++ 上卖掉,但我不得不承认,不必一直执行 cvReleaseMat() 并在 IplImage 和 CvMat 之间来回切换,这很好。Opencv 2.1 文档: http: //opencv.willowgarage.com/documentation/cpp/index.html

于 2010-08-02T00:32:11.790 回答
2

查看 ndk (hello-jni) 中的 Android 示例。它们位于 NDK 的应用程序目录中。他们展示了如何导入库和调用本地方法。在 C 方面,您必须为您的方法提供正确的 jni 命名约定 Java_...完全限定的 java 类名,使方法成为外部方法,并且还包括以使它们可访问。

此外,NDK 的 docs 目录包含有关构建和运行本机代码的所有文档。

于 2010-02-09T19:57:07.410 回答