如何使用OpenCV+在Android上设置摄像头的使用;Qt5

如何使用OpenCV+在Android上设置摄像头的使用;Qt5,android,c++,qt,opencv,Android,C++,Qt,Opencv,这里有很多类似的问题,Qt站点和OpenCV站点,但没有一个与我的情况完全匹配。(无论如何,还有很多问题没有答案。) 我正在使用OpenCV for Android 2.4.6(可从官方网站下载的预构建版本) 在三星Galaxy Note 2上为Android(4.1.2)构建本机应用程序,Qt 5.0.1适用于Android (使用QtCreator 2.7.2)在x86_64 Linux主机上 我已经链接了../sdk/native/libs/armeabi-v7a文件夹中的库。(我没有从源

这里有很多类似的问题,Qt站点和OpenCV站点,但没有一个与我的情况完全匹配。(无论如何,还有很多问题没有答案。)

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

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


samples目录中的sample.apk可以在我的手机上使用,但我没有尝试自己构建它们,因为我没有设置Java开发环境

启动我的应用程序,其中包含一个
cv::VideoCapture-inputCapture(cv\u-CAM\u-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访问权限才能执行此操作
  • 是否有任何“已知正在工作”的Andoid示例使用本机代码而不是Java

非常感谢你的帮助

我将在这里重复从user@Moster那里得到的答案:

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

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

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

“我没有设置Java开发环境”-那么您打算如何进行Android开发,因为即使主要是原生(C/C++)应用程序也需要Java?Qt5自动处理最小Java程序的生成。这可能也是问题的一部分。我认为您必须使用“CV_CAP_ANDROID”。在当前(3.0+)版本的OpenCv中不再有任何
libnative\u摄像头。我想知道,这个功能是被删除了,还是被移到了其他地方?你成功地用opencv 3.0打开了相机吗?