【问题标题】:How to set up use of camera on Android with OpenCV + Qt5如何使用 OpenCV + Qt5 在 Android 上设置相机的使用
【发布时间】:2013-08-07 16:35:49
【问题描述】:

这里有很多这样的问题,Qt 站点和 OpenCV 站点,但没有一个完全符合我的情况。 (反正很多都没有答案。)

我正在使用适用于 Android 2.4.6 的 OpenCV(可从官方网站下载的预构建版本) 在带有 Qt 5.0.1 for Android 的 Samsung Galaxy Note 2 上构建适用于 Android (4.1.2) 的本机应用程序 (使用 QtCreator 2.7.2)在 x86_64 Linux 主机上。

我已链接到 ../sdk/native/libs/armeabi-v7a 文件夹中的库。 (我没有从源代码构建 OpenCV,我只是使用下载包中的内容)。这包括一个 libopencv_androidcam.a 库。 (而且我也尝试过 libnative_camera_r4.1.1.so 共享库。) 我还下载了市场应用“OpenCV Manager”。

示例目录中的示例 .apks 可以在我的手机上运行,​​但我没有尝试自己构建它们,因为我没有设置 Java 开发环境。

启动包含cv::VideoCapture inputCapture(CV_CAM_ANDROID); 语句的应用程序,我收到以下错误并且没有摄像头输入:

E/OpenCV::camera(15299): CameraWrapperConnector::connectToLib ERROR: cannot dlopen camera wrapper library
E/OpenCV::camera(15299): Native_camera returned opening error: 4

我的问题:

  • 这应该有效吗?我见过很多 错误报告,但都是较旧的 OpenCV 版本和较新/较旧 安卓版本。有的话加分 已经看到在这部手机上工作 型号。
  • 下载的 OpenCV Android SDK 是否应该开箱即用?或者我是否需要使用一些特殊选项从源代码构建 OpenCV? (哪些?)
  • 我是否需要手机本身的特殊库版本?我是否需要对设备具有 root 访问权限才能执行此操作?
  • 是否有任何使用本机代码而不是 Java 的“已知有效”的 Andoid 示例?

非常感谢您的帮助!

【问题讨论】:

  • “我没有设置 Java 开发环境” - 那么您打算如何进行 Android 开发,因为即使主要是原生 (C/C++) 应用程序也需要 Java?
  • Qt5 自动处理最小 Java 程序的生成。这也可能是问题的一部分。
  • 我认为你必须使用“CV_CAP_ANDROID”。

标签: android c++ qt opencv


【解决方案1】:

我将在这里重复我从@Moster 用户@Moster 那里得到的答案:http://answers.opencv.org

从文件夹中复制 libnative_camera_r4.1.1.so /sdk/native/libs/armeabi-v7a 到您的 Qt 项目的文件夹 /android/libs/armeabi-v7a.确保您还允许使用相机 在 Qt 创建者的 android_manifest 中。也许这一切都有帮助

这确实有效。虽然我已经在 Manifest.xml(或者更确切地说是 Qt 项目设置)中提到了相机权限,但将共享库复制到项目目录就可以了。

似乎在构建过程中找到并链接了它,但没有从其原始位置复制到设备。 部署设置中的“将本地 Qt 库复制到设备”(仅限 Qt 库?)和 OpenCV 管理器应用程序(仅在直接从 Java 代码调用时加载正确的库?)之前都没有帮助。

【讨论】:

  • 在当前 (3.0 + ) 版本的 OpenCv 中不再有任何libnative_camera。我想知道,这个功能是被删除了,还是被移到了别处?
  • 你用opencv 3.0打开摄像头成功了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-30
  • 2015-11-08
  • 2015-05-03
  • 1970-01-01
  • 2021-02-11
相关资源
最近更新 更多