Nanopi M4 基于Opencv 打开USB摄像头

3 篇文章 0 订阅
1 篇文章 0 订阅

一. 环境选择

首次使用Nanopi M4 ARM板, 最初加载的是官方给的rk3399-sd-friendlydesktop-bionic-4.4-arm64-20190523.img,

但我最终放弃使用该系统,理由如下:

1. 进行update时失败,即使更换了下载源,依旧出现问题;

2. 官方教程安装的是Opencv4.1,我使用不习惯,我自己安装opencv 时,由于下载源的原因,安装不成功;

3. 该系统会出现意外错误,比如卡死后重新登录后,在用户pi下,输入密码pi,仍然进不了系统能够,只能重刷系统;

基于此,我更换为官方给的rk3399-sd-lubuntu-desktop-xenial-4.4-armhf-20190523.img;此系统运行正常,以下的操作均在该系统上进行;

二. 按照常规的流程,安装Opencv;

     参考博客:https://blog.csdn.net/u012840934/article/details/90235040

    https://blog.csdn.net/weixin_44419695/article/details/88751066

三. 打开单个USB摄像头

   插入USB摄像头后,在/dev/ 发现,有video8 和 video9 两个设备,再插入一个USB摄像头,会发现多出 video10 和 video11 两个设备,至于为什么会出现两个设备号,我不是清楚,需日后解决。

    使用:v4l2-ctl -d /dev/video8 --list-formats  确认摄像头具体的设备号;最终我确定  video8  和 video10 是摄像头的设备号

     利用Opencv 打开摄像头是一个很简单操作, 代码如下:

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char **argv)
{
    VideoCapture cap;
    cap.open(8);
    while (1)
    {
        Mat frame;//定义一个变量把视频源一帧一帧显示
        cap >> frame;
        if (frame.empty())
        {
            cout << "Finish" << endl;
            break;
        }
        imshow("Input video", frame);
        waitKey(1);
    }
    cap.release();
    return 0;
 
}

我可以确定我的摄像头是video8,但通过opencv open(8)时,出现了问题,总是运行不成功,我甚至 open() 0·--- 9,都失败了,最终采用的方式是:

       rm  /dev/video0

       cp  /dev/video8 /dev/video0 ;     

       然后在opencv 中进行open(0) 操作,成功;

四.打开两个USB摄像头 (失败)

     模仿上述操作,我进行了   rm /dev/video1;     cp /dev/video10  /dev/video1;    

     若同一时间,只运行一个摄像头,是可以成功的,但若两个同时运行,则只能某个摄像头采集的画面,另一个处于阻塞状态;该问题需继续解决

 

 


 

    

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值