2013-08-07 71 views
4

在这里有很多这样的问题,Qt站点和OpenCV站点,但它们都不符合我的情况。 (还有很多是无法回答的。)如何在OpenCV + Qt5上设置在Android上使用摄像头

我使用OpenCV for Android 2.4.6(可从官方网站下载的预建版本) 在Samsung Galaxy上为Android(4.1.2)构建原生应用程序注2与Qt 5.0.1的Android (使用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版本和更新/旧 Android版本。奖励积分,如果它 已被看到在这款手机 模型工作。
  • 下载的OpenCV Android SDK是否可以开箱即用?或者我需要从一些特殊的选项从源代码构建OpenCV? (哪一个?)
  • 手机本身需要特殊的图书馆版本吗?我是否需要对设备具有root权限才能使其工作?
  • 是否有任何“已知正在工作”的Andoid示例使用本机代码而不是Java?

非常感谢您的帮助!

+0

“我没有设置Java开发环境” - 那么您打算如何开发Android开发,因为即使主要为本地(C/C++)应用程序,也需要Java? –

+0

Qt5自动处理最小Java程序的生成。这也可能是问题的一部分。 –

+0

我认为你必须使用“CV_CAP_ANDROID”。 – otto

回答

1

我重复我从用户@Moster在了这里http://answers.opencv.org答案:

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

这确实有效。虽然我已经在Manifest.xml中提到了镜头权限(或者说Qt项目设置),但是将共享库复制到项目目录中的确有窍门。

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

+0

当前(3.0 +)版本的OpenCv中不再有任何'libnative_camera'。我想知道,这个功能是否被删除了,还是被移动到其他地方? – vsz

+0

你成功用opencv 3.0打开相机吗? –

相关问题