1. 程式人生 > >Halcon一日一練:圖像設備介紹

Halcon一日一練:圖像設備介紹

測試文件 代碼量 第一步 png ima nim 文本 方案 減少

Halcon在設計之初就提供了完整的圖像采集方案,適應了多種圖像設備采集圖像,以及各種不同環境的采集方案。

通常情況下,圖像的采集應該是所有機器視覺項目首要解決的任務,不幸的是,需要解決圖像采集的問題,對應裝備的種類具有特殊性,以及非標準化的硬件設備,比如,USB相機或IEEE1394相機,他們提供的物理接口及設備驅動都完全不一樣。為了讓我們專註於機器視覺實際的問題,Halcon提供了大量的圖像采集接口,通過這種快速接口,HALCON圖像采集的代碼量大為減少,只要幾行代碼就能解決問題。 使用halcon我們可以獲取來自采集設備和攝像頭在采集過程中,不同定時模式的各種配置,更重要的是,這種簡單不是以犧牲采集設備的可用功能及效率為代價的。

除了從相機獲取圖像,也可以采集的圖像存儲在文件中,HALCON也可以通過存儲在文件的方式來輸入圖像,文件的格式支持:BMP,TIFF,GIF,JPEG,PNG,PNM,PCX,XWD.

采集圖像和基本步驟:

Halcon的采集圖像基本包括三個步驟,從文件中讀取圖像更簡單,只需對操作:read_image進行單一獲取圖像即可。采集圖像的三個步驟是:

第一步:打開圖像采集設備

第二步:采集圖像

第三步:關閉圖像采集設備

第一步:打開圖像采集設備:

如果你想獲得從圖像采集卡或圖像采集設備的圖像,例如,我們使用一個IEEE1394的攝像頭,第一步是連接該設備,HALCON會幫助我們解除所有與該設備實施的操作細節,我們需要做的只是調用函數open_framegrabber即可,並指定相應圖像采集接口的名稱。

也有一種虛擬的圖像采集接口,它以文件的形式作為虛擬的圖像采集接口。顧名思義,這種幀接收器讀取圖片來自文件,也即所謂的圖像序列文件。後者是HALCON特定的文件,通常帶有擴展名.seq,它們包含圖像文件名,以換行分隔的列表(可以創建一個易於使用文本編輯器)。如果我們連接到這樣一個序列,後續調用該文件中指定的順序grab_image返回圖像。另外,我們也可以從一個特定的目錄中讀取所有圖像。這樣不必創建一個序列文件,而只是指定的目錄名。

調用grab_image返回指定的圖像目錄中的圖像。如果你想測試文件序列的圖像,以後需要切換到一個真實的物理圖像采集設備,這種應用程序 的兩種方法都是有效的。

第二步:獲取圖像

一旦連接設備成功,我們通過簡單地調用grab_image獲取圖像。如果是從磁盤加載圖像,我們可以使用read_image,從目前目錄和環境變量halconImages指定的目錄中搜索圖像。

第三步:關閉圖像采集設備

在應用程序結束時,一定要通過close_framegrabber來關閉圖像采集設備的連接,以釋放其內存資源,同時如果其它系統需要調用該設備,只有在關閉該設備連接,其它系統調用才能成功。

采集圖像常用的函數:

1:open_framegrabber:用於打開設備,或者獲取設備信息

2:set_framegrabber_param,:設置設備參數,

3:get_framegrabber_param:獲取設備參數,

4:grab_image,grab_image_async,采集圖像

5:read_image:讀取圖像

6:close_framegrabber:關閉采集設備。

無法應用halcon采集設備

除此之外,我們可能會遇到以下兩種情況:

1:我們可以對外部創建的圖像使用運營商采用函數gen_image1,gen_image3,gen_image1_extern或gen_image3_extern

2:不支持的圖像采集設備

如果當前設備不支持halcon,也就是說HALCON圖像采集接口無法支持的圖像采集設備,我們也可以通過創建自己的interface來采集圖像。

Halcon一日一練:圖像設備介紹