两个摄像头同时工作在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