如何设置在Android上使用OpenCV+Qt5相机

How to set up use of camera on Android with OpenCV + Qt5

本文关键字:OpenCV+Qt5 相机 Android 何设置 设置      更新时间:2023-10-16

这里有很多这样的问题,Qt站点和OpenCV站点,但没有一个与我的情况完全匹配。(而且很多问题都没有答案。)

我使用的是Android 2.4.6版的OpenCV(可从官方网站下载的预构建版本)在三星Galaxy Note 2上构建适用于Android的本地应用程序(4.1.2)(使用QtCreator 2.7.2)。

我已经链接了…中的图书馆/sdk/native/libs/armeabi-v7a文件夹。(我还没有从源代码构建OpenCV,我只是使用下载包中的内容)。这包括一个libopencv_androidcam.a库。(我还尝试了libnative_camera_r4.1.1.so共享库。)我还下载了市场应用程序"OpenCV Manager"。

samples目录中的sample.apk可以在我的手机上使用,但我还没有尝试自己构建它们,因为我没有设置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版本和更新/旧版本Android版本。如果它有人看到他在用这部手机模型
  • 这应该与下载的OpenCV Android SDK开箱即用吗?还是我需要从源代码构建带有一些特殊选项的OpenCV?(哪一个?)
  • 我需要手机上的特殊库版本吗?我需要拥有对设备的root访问权限才能进行此操作吗
  • 有没有使用本机代码而不是Java的"已知正在工作"的Andoid示例

非常感谢您的帮助!

我将在http://answers.opencv.org此处:

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

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

看起来它是在构建过程中找到并链接的,但没有从原始位置复制到设备。部署设置中的"将本地Qt-lib复制到设备"(仅Qt-libs?)和OpenCV Manager应用程序(仅在直接从Java代码调用时加载正确的lib?)以前都没有帮助。