Halcon一日一練:影象採集裝置的基本引數
因操作影象處理之前,需要對影象進行採集。採集影象,我們首先要確定的是影象的畫素和採集的效率。這些都需要對裝置進行配置與操作。現實情況是影象裝置有各自不同的採集方式,配置也各不相同。這就需要裝置提供商提供對應的開發工具包。這些工具包可能會遵循一定的標準。因此,在halcon中應用採集裝置,可能需要按照指定的要注重寫應用程式。
Halcon提供了超過百種裝置的動態庫,這些動態庫檔案對應於windows系統為DLL庫檔案及Uinx系統為Shared Libraries共享庫檔案,其影象採集介面覆蓋了常用的相機介面,比如:CameraLink,gige,1394,U3等等。Halcon的影象採集介面橋接各個影象採集裝置和對應的動態(共享)庫,完全獨立於使用的影象採集裝置,計算機平臺和程式語言。換言之,他們滿足在同一操作平臺下的不同封裝,其對應的特點為以下兩點:
1:提供標準化介面
2:封裝在特定的影象採集裝置以及幀接收器,與由裝置製造商提供的SDK相互作用。
因此,當我們決定要切換到不同的採集裝置,我們所需要的做的是在使用是呼叫Halcon操作函式並且設定不同的引數值提供相應的驅動程式和SDK,其他的則保持不變。
影象採集的基本任務由兩個HALCON函式完成:
1:open_framegrabber:連線影象採集裝置並設定常規引數(如埠型別及名稱,型號等)
2:grab_image或grab_image_async:抓取影象
如果需要影象採集裝置提供附加的功能,例如,修改影象訊號模式,或者數字輸出頻率等,可以通過set_framegrabber_param函式來進行修改,需要注意的是,對應一些影象採集裝置,並不是所有的功能都能夠正常使用。
Halcon如何連線到裝置
有以下幾種做法:
1:開啟與配置影象採集裝置並連線
open_framegrabber 函式幫助我們開啟指定的影象裝置,通常在連線影象過程中,我們需要對四個引數進行詳細的描述:
首先:需要選擇正確的採集介面,該引數實際上是指定影象裝置對應的接頭(Port),該引數是一個字串的描述形式,當然我們也可以將其設定為數字(字串形式)。
通常情況下,可以將採集裝置連線到影象採集卡不同埠,其數量可以根據埠的數量來選擇,通過選擇的埠來指定,引數cameraType介紹所連線的相機,對於模擬攝像機,這個引數通常指定使用的訊號規範,例如,“NTSC”。對於工業相機,這個引數通常指定型號的相機;更復雜的採集介面,使用這個引數來選擇對應相機的配置檔案。
open_framegrabber函式對應結果是返回一個裝置控制代碼AcqHandle,我們需要通過這個控制代碼來開啟連線,需要注意的是,如果你使用Halcon的COM或者C++介面函式,並通過相應的類呼叫操作,例如:HFramegrabber在C++中或者C#中,沒有返回的控制代碼,因為類本身的例項作為返回的控制代碼。
在實際操作中,可以通過Halcon的採集助手聯接到採集裝置。只要調節部分引數即可。