Używanie natywnych funkcji w systemie Android z OpenCV
Chcę używać OpenCV + Android, używając rodzimych funkcji. Jednak jestem trochę zdezorientowany, jak używać bitmap jako parametrów i jak zwracać wartość edytowanej bitmapy (lub Mat).
Na przykład mam funkcję natywną:
#include <jni.h>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
JNIEXPORT ??? JNICALL Java_com_my_package_name_and_javaclass_myFunction(JNIEnv* env, jobject javaThis, cv::Mat mat1){
//here will be code to perform filtering, blurring, canny edge detection or similar things.
//so I want to input a bitmap, edit it and send it back to the Android class.
return ???
}
Więc tutaj używam cv :: Mat jako parametru. Wiem, że to źle, ale nie jestem pewien, co to powinno być i co powinno być w odpowiedniej klasie Java. Czy powinien to być ByteArray? A potem w powyższej natywnej funkcji parametrem byłby jByteArray (lub podobny)?
Co do powracającego obiektu, co powinienem umieścić? Czy to powinna być tablica?
Zasadniczo tego, czego szukam, jest w klasie Java Mam Matę (lub Bitmapę). Wysyłam ją do natywnej funkcji w celu edycji i zwracam ładnie edytowaną bitmapę.