​Qt+openCV学习笔记(十四)Qt6.3.0+openCV4.5.5+android_arm64-v8a测试拉取本地摄像头的流

前言

在openCV4.5.2之前,自身的库无法在android下,拉取本地摄像头的流,现在的版本可以拉取了,笔者本次做下记录

在开始前需要读者参考以下文档,编译库

​Qt+openCV学习笔记(十三)openCV4.5.5+android-ndk-r22-windows-x86_64编译动、静态库_꧁白杨树下꧂的博客-CSDN博客

一、编写关键代码

笔者使用Qt6.3.0测试的,关于新建工程、如何引用openCV库,笔者不再重复,直接上关键代码

1.打开摄像头

cv::VideoCapture cap;
cap.open(0);
if (!cap.isOpened())
{
    std::cerr << "can't open camera " << fd << std::endl;
    return -1;
}

 和其他系统下相同,摄像头是从0开始排列的,

若有多个,直接+1就可以,(openCV这点很不友好,期待再加个获取名称的接口)

while(true)
{
    cap >> frame;

    if (frame.empty())
    {
        std::cerr << "cannot find frame" << std::endl;
        break;
    }
    
#ifdef Q_OS_ANDROID
    cvtColor(frame, frame, cv::COLOR_YUV2BGR_NV21);
#endif
    //do something
}

获取一帧也很简单,和其他系统没区别。但是要注意,获取帧的颜色空间与其他平台可能不一样。笔者使用的是华为平板测试,发现获取的帧是yuv格式的,若要在Qt中显示,需要出转换成RGB格式的。

受限于硬件,笔者未测试其他设备,请小伙伴自行测试修改 

二、编译运行

只要库设置正确了,编译就可以正常进行,但笔者运行后提示,没有打开摄像头的权限

 系统设置中却没有摄像头权限,Qt6.3中请求权限接口还是私有的,没办法直接使用,于是笔者增加了Qt多媒体模块,增加摄像头权限后,终于打开了摄像头

 本是件高兴的事,但笔者一旋转平板,傻眼了

 

 

 openCV获取的图像已经旋转过了,正常使用时,还需要再纠正下

笔者尝试打开前置摄像头,也可以正常拉流。

后记

笔者没有进行分辨率等设置的测试,直接拉取网络流也未成功

感觉当前还是使用Qt的接口轻松点,openCV的还是要再等下

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁白杨树下꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值