Android Studio NDK OpenCV:c++;代码可以';不要用垫子
在Android Studio的应用程序中,我将OpenCV包含在我的本机代码中。并编写了一个测试函数:Android Studio NDK OpenCV:c++;代码可以';不要用垫子,android,c++,opencv,android-studio,android-ndk,Android,C++,Opencv,Android Studio,Android Ndk,在Android Studio的应用程序中,我将OpenCV包含在我的本机代码中。并编写了一个测试函数: JNIEXPORT jint JNICALL Java_com_atapy_wisetrend3_MainActivity_Search(JNIEnv *env, jclass type, cv::Mat image,cv::Mat croppedImage) { croppedImage = image; return 1; } 但是当我调用函数Search时,Java
JNIEXPORT jint JNICALL Java_com_atapy_wisetrend3_MainActivity_Search(JNIEnv *env, jclass type, cv::Mat image,cv::Mat croppedImage)
{
croppedImage = image;
return 1;
}
但是当我调用函数Search时,Java中调用函数的执行会停止,不会出现任何错误。在logcat中,我有以下信息:
“0x11c00041(代码=1)处的致命信号11(SIGSEGV),线程16754
(tapy.wisetrend3)”
如果我删除行“crappedimage=image”
,函数将成功并返回1。所有使用Mat的操作都会发生这种情况
这是什么意思?我不知道你想做什么。但是
cv::Mat
本质上是实际Mat.data
的包装。通常,人们不希望直接赋值image=cropedimage
,特别是当它们被传递给参数时
如果要复制图像数据,crappedimage.copyTo(image)
是一种方法