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

但是上圖中的模式,采集圖像比較慢,因為Snap.vi都包含了初始化和關(guān)閉等環(huán)節(jié),最快的情況下也得需要120ms。NI為了解決這種問題,添加了Grab.vi來實現(xiàn)連續(xù)采集。程序框圖如下:
本文引用地址:http://m.butianyuan.cn/article/201701/337148.htm
這種情況下一幀數(shù)據(jù)大約需要40ms。
?然而,在高速圖像采集的應(yīng)用中,我們會發(fā)現(xiàn)上一種模式也會存在一定的問題,即當(dāng)圖像采集速度非常高時,處理程序還來不及處理當(dāng)前的圖像,圖像緩沖區(qū)里面的數(shù)據(jù)已經(jīng)被新的圖像數(shù)據(jù)所覆蓋了。
為了解決采集緩沖區(qū)不足的問題,我們可以增加圖像采集緩沖區(qū)。
NI-IMAQ提供了兩種多緩沖區(qū)的方式,分別為Sequence和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)用:

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?表示釋放當(dāng)前被提取的緩沖區(qū)。IMAQ Extract Buffer.vi在提取圖像數(shù)據(jù)時會對當(dāng)前被提取的緩沖區(qū)進行保護,所以當(dāng)采集過程完成時,需要釋放當(dāng)前被保護的緩沖區(qū)。
Ring圖像采集方式實現(xiàn)的主要過程如上所述,其余步驟就是大家熟悉的初始化采集硬件、釋放圖像采集硬件和釋放緩沖區(qū)了。
評論