新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > LabVIEW圖像采集相關(guān)(一)

LabVIEW圖像采集相關(guān)(一)

作者: 時間:2017-01-09 來源:網(wǎng)絡(luò) 收藏
單次采集圖像時,常用Snap.vi來編程。,如果我們連續(xù)采集的話,就會想到如下的模式。
?snap

但是上圖中的模式,采集圖像比較慢,因為Snap.vi都包含了初始化和關(guān)閉等環(huán)節(jié),最快的情況下也得需要120ms。NI為了解決這種問題,添加了Grab.vi來實現(xiàn)連續(xù)采集。程序框圖如下:

本文引用地址:http://butianyuan.cn/article/201701/337148.htm
?grab

這種情況下一幀數(shù)據(jù)大約需要40ms。

?然而,在高速圖像采集的應(yīng)用中,我們會發(fā)現(xiàn)上一種模式也會存在一定的問題,即當圖像采集速度非常高時,處理程序還來不及處理當前的圖像,圖像緩沖區(qū)里面的數(shù)據(jù)已經(jīng)被新的圖像數(shù)據(jù)所覆蓋了。

為了解決采集緩沖區(qū)不足的問題,我們可以增加圖像采集緩沖區(qū)。

NI-IMAQ提供了兩種多緩沖區(qū)的方式,分別為Sequence和Ring。

?Sequene和Ring

Sequence和Ring都是多緩沖區(qū)圖像采集方式,區(qū)別是Sequence是單次采集,而Ring是連續(xù)采集,類似Snap和Grab。

?Sequence.vi最最重要的參數(shù)是Imahes In,這是一個圖像數(shù)據(jù)緩沖區(qū)引用數(shù)組,里面包含了多個由Imaq Create.vi創(chuàng)建的圖像數(shù)據(jù)緩沖區(qū)的引用。只有知道了多個圖像數(shù)據(jù)緩沖區(qū)在哪里,IMAQ Sequence.vi才能完成多緩沖區(qū)的圖像采集。

?Sequnce應(yīng)用:

?sequence應(yīng)用

Ring圖像采集方式(IMAQ的方式,IMAQdx還不太一樣):

Ring圖像采集方式需要由三個VI來實現(xiàn),分別是IMAQ Configure List.vi?、IMAQ Configure Buffer.vi和IMAQ Extract.vi。

?IMAQ Configure List.vi完成緩沖區(qū)列表的配置,告訴驅(qū)動程序緩沖區(qū)的數(shù)量,以連續(xù)還是單次的方式進行圖像采集以及緩沖區(qū)的位置。

?IMAQ Configure Buffer.vi把創(chuàng)建好的圖像緩沖區(qū)分配到緩沖區(qū)列表的對應(yīng)位置。

?IMAQ Extract Buffer.vi把采集到的圖像從緩沖區(qū)中提取出來,為后續(xù)圖像處理做準備。

如下圖所示(由于圖過長,僅截取關(guān)鍵代碼)?

?第一步,調(diào)用IMAQ Configure List.vi告訴驅(qū)動程序是以Continuous的方式進行圖像采集,緩沖區(qū)的位置在system—也就是開發(fā)引用程序的主機上。

第二步,調(diào)用?IMAQ Configure Buffer.vi把創(chuàng)建好的圖像緩沖區(qū)關(guān)聯(lián)到緩沖區(qū)列表的對應(yīng)位置上。

?第三步,調(diào)用IMAQ Start.vi開啟一個圖像采集的過程,需要注意的是,在調(diào)用IMAQ Start.vi前,必須調(diào)用IMAQ Configure List.vi和IMAQ Configure Buffer.vi來配置采集過程。

第四步,調(diào)用?IMAQ Extract Buffer.vi從緩沖區(qū)中把圖像提取出來。

第五步,把IMAQ Extract Buffer.vi的Buffer to Exact參數(shù)設(shè)置為-1?表示釋放當前被提取的緩沖區(qū)。IMAQ Extract Buffer.vi在提取圖像數(shù)據(jù)時會對當前被提取的緩沖區(qū)進行保護,所以當采集過程完成時,需要釋放當前被保護的緩沖區(qū)。

Ring圖像采集方式實現(xiàn)的主要過程如上所述,其余步驟就是大家熟悉的初始化采集硬件、釋放圖像采集硬件和釋放緩沖區(qū)了。



關(guān)鍵詞: LabVIEW圖像采

評論


技術(shù)專區(qū)

關(guān)閉