在android中使用本机opencv FileStorage

2023-12-09

我正在尝试编写一个 Android 应用程序,使用 opencv 计算关键点和描述符并存储它们。但是我在 cv:FileStorage 方面遇到了麻烦。我实际上是通过文件路径抛出本机方法。相同的路径(不同的文件结尾)还用于在javaside存储另一个文件。

JNIEXPORT void JNICALL Java_com_..._CalcFeatures(JNIEnv* env, jobject, jlong addrGray, jstring location){
...
const char *nativeString = env->GetStringUTFChars(location, NULL);
string filepath=string(nativeString);
FileStorage fs(filepath, FileStorage::WRITE);
fs<<"frameCount"<<5;
fs.release();
...
}

LogCat 输出:

Fatal signal 11 (SIGSEGV) at 0x000009f4 (code=19), thread 23789 

我还尝试对路径进行硬编码(例如“/sdcard/test.xml”或“/storage/emulated/0/text.xml”)。如果我使用“test.xml”作为文件路径,我不会收到任何错误,但我无法在手机 (HTC One) 上找到该文件。

有什么建议吗?

谢谢你的时间。

UPDATE:

这工作得很好,所以文件存储有问题。 opencv中有没有其他方法可以将其解析为xml/json格式?也许结果是字符串?

FILE* file = fopen(nativeString,"w+");
fputs("hello, world\n", file);
fclose(file);

我在这里问过类似的问题:imread 返回空矩阵,而 ifstream 可以打开并读取同一文件我发现即使我可以从本机部分操作文件,我也无法使用 opencv 的 FileStorage。

这就是为什么我无法加载矩阵、级联分类器等。

我还尝试将数据从文件加载到内存并从内存创建 FileStorage,它是为写入而创建的,但它不起作用(虽然它在 Windows 上完美运行)。我无法访问任何节点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中使用本机opencv FileStorage 的相关文章

  • 使用 Android L Notification.MediaStyle 添加终止播放按钮

    我想使用新的 Android L MediaStyle 模板创建媒体播放通知 现在 我成功地完成了上一个 播放 暂停 下一个等操作 通过使用addAction 但我找不到像中那样添加 关闭 按钮的方法Android 通知文档 http de
  • 迁移到 AndroidX 后,应用程序崩溃并尝试在空引用上调用 androidx.fragment.app.FragmentManagerImpl.isDestroyed()

    完整的堆栈仅包括 android 核心代码 java lang NullPointerException Attempt to invoke virtual method boolean androidx fragment app Frag
  • Android - NumberPicker 滚动/快速滑动更快

    如何使数字选择器滚动 快速滑动更快 目前从00分钟到59分钟需要付出很大的努力 我尝试过一些例子Android 中 Viewpager 控制器速度减慢 https stackoverflow com questions 8155257 sl
  • 清单合并失败:属性 application@appComponentFactory

    一切都很好 但我正在尝试添加这个库https github com wdullaer MaterialDateTimePicker https github com wdullaer MaterialDateTimePicker有了这个 i
  • 如何将TabLayout与Recyclerview同步?

    我有一个TabLayout with Recyclerview这样当单击选项卡时Recyclerview滚动到特定位置 我也想要相反的过程 这样当Recyclerview滚动到特定位置 然后该特定选项卡会突出显示 例如 如果有 4 个选项卡
  • 鼠标在两个视图上移动,如何让它们都处理`ACTION_MOVE`事件

    我有两个视图 较大的一个在底部 较小的一个在顶部 如下图所示 现在我在 view1 view2 外部 上按鼠标 然后移动到 view2 我发现即使鼠标在移动过程中位于view2内部 view2也不会得到ACTION MOVE事件 只有vie
  • Android中每10秒显示一次数据

    我必须每 10 秒后显示一些数据 谁能告诉我该怎么做 您还可以使用另一种方法按特定时间间隔更新 UI 以上两个选项都是正确的 但根据具体情况 您可以使用替代方法在特定时间间隔更新 UI 首先为 Handler 声明一个全局变量 用于从 Th
  • Android BuildConfig 字段错误生成字符串

    在开始新项目的最后一天 我在构建配置中创建了一些变量 作为在发布和调试构建之间单独处理它们的好习惯 如下所示 buildTypes release minifyEnabled false buildConfigField String PA
  • NativeActivity未完成

    我从 JavaActivity 调用 NativeActivity 我的 NativeActivity 的入口点是 android main struct android app state 最后 我打电话给 ANativeActivity
  • 使用自定义布局时 AlertDialog 按钮不可见

    我想要在弹出窗口中使用自定义布局 所以我使用了警报对话框 由于弹出窗口中的子视图数量是动态决定的 所以我使用了 ScrollView 现在 扭曲来了 当没有剩余空间并且滚动开始运行时 正向和负向按钮将变得不可见 下面是代码 AlertDia
  • 将 SearchView 阈值设置为零

    我在用SearchView在android中 我将适配器设置为搜索视图 但建议弹出框在一个字符后显示 因为我将阈值设置为1 它不接受小于1的数字 如何将阈值设置为零 请喜欢 Google 因为您可能知道 Google Play 的应用程序没
  • 如何提高加速度计和指南针传感器的精度?

    我正在创建一个增强现实应用程序 当手机面向兴趣点 GPS 位置存储在手机上 时 它可以简单地可视化文本视图 文本视图绘制在屏幕中的兴趣点位置上 它工作正常 问题是指南针和加速度计非常 变体 并且文本视图由于传感器的准确性而不断左右上下移动
  • Android 中的 GPS 超时

    在黑莓中 我们使用超时来获取位置 这样如果它在这么长时间内没有重新调整位置 我们就会知道 但是在Android中 没有超时的概念 任何人都可以告诉我们替代方案 我们可以发现 在这么长时间之后 GPS没有位置更新 您可以使用两个线程来实现此超
  • 在 Android 中下载文件

    我正在使用以下代码在 Android 中下载文件 public class FileDownloadActivity extends Activity ProgressDialog mProgressDialog Called when t
  • 消费者关闭了输入通道或发生错误。事件=0x8

    D AndroidRuntime 11752 D AndroidRuntime 11752 gt gt gt gt gt gt AndroidRuntime START com android internal os RuntimeInit
  • BLE:使用 Android / iOS 读取长特征值

    对于正常的特征读取 仅读取 MTU 大小 20 字节 的数据 我的客户将提供更大尺寸 超过 100 字节 的特征 我看到 BLE 提供了 长读取 功能 可以读取直到达到特征的大小 https bluegiga zendesk com ent
  • 如何反序列化数组 google-gson 内的数组

    我有这样的 JSON Answers Locale Ru Name Name1 Locale En Name Name2 Locale Ru Name Name3 Locale En Name Name4 正如你所看到的 我的数组里面有数组
  • 如何启用 Genymotion 模拟器使用主机正在使用的 WIFI 互联网

    我在 Genymotion 模拟器上运行的应用程序需要互联网 互联网似乎无法在 Genymotion 模拟器上运行 我试图通过打开浏览器来确认这一点 这就是我得到的 我在我的笔记本电脑上运行 Windows 7 并使用 Wifi 互联网 我
  • 如何以编程方式滚动 Horizo​​ntalScrollView

    我有一个HorizontalScrollView其中包含一个RelativeLayout 该布局在 XML 中为空 并由 onCreate 中的 java 填充 我希望这个滚动视图最初位于中间的某个位置RelativeLayout 它比屏幕
  • Phonegap - 自动包含正确的科尔多瓦

    我正在 iOS 和 Android 上开发一个 PhoneGap 应用程序 并使用 git 控制我的 www 目录版本 我知道我的 HTML 文件需要包含正确的 Cordova js 文件 取决于我当前正在开发的平台 当有人在 Androi

随机推荐