linux下基于QT openCV两摄像头同时工作

在Windows下实现双摄像头同时工作相对简单,但在Linux环境下,由于V4L2函数的资源占用问题,导致多摄像头同时使用变得复杂。本文介绍了通过循环切换打开和关闭摄像头的方法来实现在Linux下两摄像头同时工作的解决方案,尽管存在帧同步问题,但成功地让两个摄像头能够交替工作。主要代码涉及cvCaptureFromCAM、cvReleaseCapture和cvQueryFrame等OpenCV函数。
摘要由CSDN通过智能技术生成

两个摄像头同时工作在windows下很好实现。以为有现成的类可以调用,然而linux下却不怎么好用,做这方面的工作已经很久了,linux下单个摄像头也很好实现,当打开第二个摄像头的时候总是提示资源被占用,没有通道等信息,查阅资料发现是因为V4L2这个函数在调用时会申请全部的带宽,因此另一个摄像头便不能使用,所以我尝试打开一个摄像头截取一帧,然后关闭摄像头,打开另一摄像头的方法,循环调用,这样两个摄像头能同时打开,然而很明显一个问题就是两个摄像头的帧总是一前一后的!然而这梁摄像头总归是打开了,至于不怎么流畅的问题留待以后解决!



主要代码:

#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}


Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    while(1)
    {
        pCapture0 = cvCaptureFromCAM(200);
        cvSetCaptureProperty(pCapt

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值