新聞中心
??隨著linux應(yīng)用的普及,多攝像頭的視頻同步捕捉在多領(lǐng)域發(fā)揮著重要作用。本文將介紹linux視頻多攝像頭數(shù)據(jù)的同步捕捉,實(shí)現(xiàn)步驟如下:

??首先,要安裝對(duì)應(yīng)的攝像頭驅(qū)動(dòng)和API,本文選擇使用libArgus接口來(lái)獲取攝像頭數(shù)據(jù),實(shí)現(xiàn)視頻同步捕捉。首先,檢測(cè)開(kāi)發(fā)平臺(tái)是否支持libargus:
#roslocate libargus
#find /usr/include/ -name "argus.h
??如果返回值不為NULL,則表明可以正確使用libargus,反之則需要更新驅(qū)動(dòng)以及安裝對(duì)應(yīng)的API支持;
??接著,linux多攝像頭的實(shí)現(xiàn)采用的是異步多路感測(cè)技術(shù)。因此,需要建立多個(gè)獨(dú)立的Capturing Session,以實(shí)現(xiàn)多路視頻捕捉:
//Initialize multiple sessions
//事先定義一個(gè)Session指針數(shù)組
for (int i = 0; i
Argus::UniqueObj captureSession(cameraProvider->createCaptureSession(device));
session[i] = captureSession.get();
}
??接下來(lái),可以定義每個(gè)攝像機(jī)的Stream類(lèi),并分別初始化:
//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,實(shí)現(xiàn)對(duì)每個(gè)獨(dú)立攝像頭的同步捕捉:
//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多攝像頭視頻數(shù)據(jù)就可以正常捕捉,同時(shí)還可以根據(jù)不同應(yīng)用場(chǎng)景,通過(guò)調(diào)整streamSetting,實(shí)現(xiàn)自定義分辨率、格式等設(shè)置;
??由此可見(jiàn),Linux的多攝像頭同步捕捉,只需要進(jìn)行相應(yīng)的參數(shù)設(shè)置,通過(guò)libargus支持的接口及調(diào)用程序,就可以輕松實(shí)現(xiàn)。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過(guò)多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專(zhuān)業(yè)從事IT產(chǎn)品開(kāi)發(fā)和營(yíng)銷(xiāo)公司。廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)、設(shè)計(jì)、SEO優(yōu)化、關(guān)鍵詞排名等多種行業(yè)!
網(wǎng)頁(yè)題目:實(shí)現(xiàn)Linux多攝像頭同步捕捉(linux多攝像頭)
網(wǎng)站地址:http://m.fisionsoft.com.cn/article/dpepdsg.html


咨詢(xún)
建站咨詢(xún)
