Как использовать Java с NDK Android? - PullRequest
6 голосов
/ 09 февраля 2010

Я предполагаю, что используя код OpenCV здесь: http://github.com/billmccord/OpenCV-Android#readme лучший способ использовать OpenCV на Android вместе с NDK.

Я все еще застрял в том, как я получаю определения функций из C к тем, которые я объявляю в OpenCV.java в моем проекте Android

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};

Как мне написать это в Java с ndk для Android?

Ответы [ 2 ]

6 голосов
/ 02 августа 2010

Требуется ли вашему приложению интерфейс 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

2 голосов
/ 09 февраля 2010

Посмотрите примеры Android в ndk (привет-jni). Они находятся в каталоге приложений NDK. Они показывают, как импортировать библиотеку и вызывать собственные методы. На стороне C вы должны дать своим методам правильные соглашения об именах jni Полное имя Java _..., сделать методы внешними, а также включить их, чтобы сделать их доступными.

Также в каталоге docs NDK есть вся документация по сборке и запуску собственного кода.

...