roffey_h 2024-03-04 15:44 采纳率: 0%
浏览 56

QT for Android + OpenCV

请问qt for android 配置好了opencv,在xml文件中也添加了camera权限,但是打不开摄像头,也不报错,这种情况怎么解决呀

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-04 15:45
    关注

    引自免费微信小程序:皆我百晓生

    在使用Qt for Android开发并集成OpenCV时,遇到无法打开摄像头且无错误提示的情况,可能的原因和解决步骤如下:

    1. 检查权限

      • 确保在AndroidManifest.xml中除了添加了camera权限之外,还包含了读写外部存储等必要的权限。例如:
      <uses-permission android:name="android.permission.CAMERA" />
      <uses-feature android:name="android.hardware.camera" android:required="true" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      
    2. 初始化Camera

      • 在Qt代码中正确初始化OpenCV的VideoCapture对象,并尝试捕获来自相机的帧。确保设备索引设置正确(通常为0):
      cv::VideoCapture cap(0);
      if (!cap.isOpened()) {
          qDebug() << "Error opening camera";
          return;
      }
      
    3. 兼容性问题

      • 检查你的OpenCV版本是否与所使用的Android系统版本以及设备硬件兼容。有些较老版本的OpenCV可能不支持某些新设备或新API。
    4. UI权限请求

      • 如果你的应用是在Android 6.0(API level 23)及以上运行,你需要动态请求权限。在Qt中,你可以使用QAndroidJniObject来实现这一功能。参考以下链接了解如何实现:请求运行时权限
    5. 环境配置问题

      • 确认你在构建Qt项目时,已经将OpenCV库成功链接到Android APK中。在.pro文件里应包含相应的库路径和链接命令。
    6. 调试日志

      • 虽然你提到没有错误输出,但在实际操作中,可以尝试通过adb logcat工具查看更详细的系统日志,以便找出潜在的问题。

    如果上述步骤仍然不能解决问题,请提供更多的上下文信息和具体的代码片段,以便进一步排查问题所在。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月4日