传递CV:从Android的垫JNI [英] Passing cv:Mat from android to jni
问题描述
我想从Android端发送一个垫子对象JNI的一面,我不想送垫目标地址。
但我的JNI code无在垫行,这我没有得到的返回0。
Android的Java的code是:
buttton.setOnClickListener(新OnClickListener(){
@覆盖
公共无效的onClick(视图v){
Utils.bitmapToMat(位图,垫);
Log.d(TAG,Integer.toString(m.rows())++ Integer.toString(m.cols())); textView.setText(Integer.toString(openCVJNI(米)));
}
});
JNI code是:
的externC{
JNIEXPORT jint JNICALL
Java_com_example_color_MainActivity_openCVJNI(JNIEnv的* ENV,jobject THIZ,垫inputImage的)
{
返回inputImage.rows;
}
}
请参阅的https://github.com/Itseez/opencv/tree/master/samples/android/tutorial-2-mixedprocessing样本。
org.opencv.core.Mat
的 getNativeObjAddr
方法,它返回长
,它可以作为PTED指向 CV ::垫
。
Java的code:
openCVJNI(m.getNativeObjAddr());
JNI code:
Java_com_example_color_MainActivity_openCVJNI(JNIEnv的* ENV,jobject THIZ,长addrInputImage)
{
CV ::垫* pInputImage =(CV ::垫*)addrInputImage;
返回pInputImage->的行;
}
I'm trying to send a Mat object from android side to jni side, i do not want to send mat object address. But my jni code returns 0 for no of rows in Mat, which i'm not getting.
Android-Java code is :
buttton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Utils.bitmapToMat(bitmap, mat);
Log.d(TAG,Integer.toString(m.rows())+" "+Integer.toString(m.cols()));
textView.setText(Integer.toString(openCVJNI(m)));
}
});
JNI code is :
extern "C" {
JNIEXPORT jint JNICALL
Java_com_example_color_MainActivity_openCVJNI(JNIEnv *env, jobject thiz, Mat inputImage)
{
return inputImage.rows;
}
}
See https://github.com/Itseez/opencv/tree/master/samples/android/tutorial-2-mixedprocessing sample.
org.opencv.core.Mat
has getNativeObjAddr
method, it returns long
, which can be interpreted as pointer to cv::Mat
.
Java code:
openCVJNI(m.getNativeObjAddr());
JNI code:
Java_com_example_color_MainActivity_openCVJNI(JNIEnv *env, jobject thiz, long addrInputImage)
{
cv::Mat* pInputImage = (cv::Mat*)addrInputImage;
return pInputImage->rows;
}
这篇关于传递CV:从Android的垫JNI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!