【问题标题】:Android Studio NDK OpenCV: c++ code can't work with Mat [duplicate]Android Studio NDK OpenCV:c ++代码不能与Mat一起使用[重复]
【发布时间】:2016-05-05 19:39:15
【问题描述】:

我在 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 中调用函数的执行停止,没有任何错误。在 logcat 我有这个消息:

"致命信号 11 (SIGSEGV) 位于 0x11c00041 (code=1),线程 16754 (tapy.wisetrend3)"。

如果我删除"croppedImage = image" 行,函数会成功并返回 1。所有使用 Mat 的操作都会发生这种情况。

什么意思?

【问题讨论】:

    标签: android c++ opencv android-studio android-ndk


    【解决方案1】:

    我不确定您要做什么。但cv::Mat 本质上是实际Mat.data 的包装。通常,不想直接赋值image=croppedImage,特别是当它们被传递参数时。

    如果你想复制图像数据,croppedImage.copyTo(image) 是要走的路。

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 2012-05-17
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 2015-04-26
      • 1970-01-01
      相关资源
      最近更新 更多