随着linux应用的普及,多摄像头的视频同步捕捉在多领域发挥着重要作用。本文将介绍linux视频多摄像头数据的同步捕捉,实现步骤如下:
首先,要安装对应的摄像头驱动和API,本文选择使用libArgus接口来获取摄像头数据,实现视频同步捕捉。首先,检测开发平台是否支持libargus:
#roslocate libargus
#find /usr/include/ -name "argus.h
如果返回值不为NULL,则表明可以正确使用libargus,反之则需要更新驱动以及安装对应的API支持;
接着,linux多摄像头的实现采用的是异步多路感测技术。因此,需要建立多个独立的Capturing Session,以实现多路视频捕捉:
//Initialize multiple sessions
//事先定义一个Session指针数组
for (int i = 0; i
Argus::UniqueObj captureSession(cameraProvider->createCaptureSession(device));
session[i] = captureSession.get();
}
接下来,可以定义每个摄像机的Stream类,并分别初始化:
//Initialize Streams 定义多路的Stream
for (int i = 0; i
Argus::CaptureSession *session_i = session[i];
Argus::UniqueObj streamSettings(session_i->createOutputStreamSettings());
//Specify the preferrable resolution
streamSettings->setPixelFormat(Argus::PIXEL_FMT_YCbCr_420_888);
Argus::UniqueObj captureOutputStream(session_i->createOutputStream(streamSettings.get()));
stream[i] = captureOutputStream.get();
}
最后,就可以利用上述建立的多路Stream,实现对每个独立摄像头的同步捕捉:
//Start Capturing
for (int i = 0; i
Argus::Status status(stream[i]->capture(uid[i]));
//Check capturing status
if(status != Argus::STATUS_OK)
{
//Error
}
}
以上步骤完成后,linux多摄像头视频数据就可以正常捕捉,同时还可以根据不同应用场景,通过调整streamSetting,实现自定义分辨率、格式等设置;
由此可见,Linux的多摄像头同步捕捉,只需要进行相应的参数设置,通过libargus支持的接口及调用程序,就可以轻松实现。
成都创新互联科技有限公司,经过多年的不懈努力,公司现已经成为一家专业从事IT产品开发和营销公司。广泛应用于计算机网络、设计、SEO优化、关键词排名等多种行业!
网站栏目:实现Linux多摄像头同步捕捉(linux多摄像头)
本文地址:http://www.shufengxianlan.com/qtweb/news14/452814.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联