連接到圖像采集卡
open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘false’, CameraType, myBoard, -1, -1, AcqHandle)
使用操作符 open_framegrabber 打開與圖像采集設(shè)備的連接時,主要參數(shù)是相應(yīng) HALCON 采集接口的名稱。因此,您將獲得一個所謂的句柄 (AcqHandle),通過它您可以訪問圖像采集設(shè)備,例如,在調(diào)用操作者grab_image 時。
圖 2.1:a) 獲取的圖像;b) 處理過的圖像(自動分割)
在示例中,大多數(shù)其他參數(shù)使用默認(rèn)值(‘default’ 或 -1)
第 2 步:抓取圖像
grab_image (Image, AcqHandle)
成功連接到您的圖像采集設(shè)備后,您可以通過調(diào)用帶有相應(yīng)句柄 AcqHandle 的操作符grab_image 來抓取圖像。
第 3 步:循環(huán)抓取和處理圖像
while (Button != 1)
grab_image (Image, AcqHandle)
dev_set_window (WindowHandle)
dev_display (Image)
* -》 process image (segment with an automatically determined threshold)
auto_threshold (Image, Regions, 4)
connection (Regions, ConnectedRegions)
dev_set_window (WindowHandleProcess)
dev_display (ConnectedRegions)
* -》 check for a click into the window (error handling switched off, otherwise the cursor must always be in the window)
dev_set_check (‘~give_error’)
get_mposition (WindowHandleButton, Row, Column, Button)
dev_set_check (‘give_error’)
endwhile
在示例中,然后使用運算符 auto_threshold 自動分割抓取的圖像(見圖 2.1)。這是在循環(huán)中完成的,可以通過用鼠標(biāo)左鍵單擊窗口來退出。
3、連接到您的圖像采集設(shè)備
在本節(jié)中,我們將展示如何連接到不同配置的圖像采集卡和相機,從一個相機連接到一個圖像采集卡的簡單情況到更復(fù)雜的情況,例如多個同步相機連接到 一塊或多塊板。
3.1 打開指定配置的連接
用操作符 open_framegrabber,您可以打開與圖像采集設(shè)備的連接。這種連接由四個參數(shù)描述(見圖 3.1):首先,您選擇一個帶有參數(shù) Name 的采集接口。參數(shù) Device 指定實際的板卡或相機;根據(jù)采集接口,該參數(shù)可以包含描述板的字符串或簡單的數(shù)字(以字符串的形式!)。
通常,相機可以連接到不同端口的圖像采集卡,其數(shù)量可以通過參數(shù) Port(在極少數(shù)情況下為 LineIn)來選擇。參數(shù) CameraType 描述了連接的攝像頭:對于模擬攝像頭,該參數(shù)通常指定使用的信號范數(shù),例如,‘ntsc’。對于數(shù)碼相機,此參數(shù)通常指定相機型號;更復(fù)雜的采集接口使用此參數(shù)來選擇相機配置文件。
因此,open_framegrabber 在參數(shù) AcqHandle 中返回打開連接的句柄。請注意,如果您使用 HALCON 的 COM 或 C++ 接口并通過相應(yīng)的類調(diào)用操作符,例如 C++ 中的 HFramegrabber,則不會返回句柄,因為類的實例本身充當(dāng)您的句柄。
使用 HDevelop 的圖像采集助手,您可以輕松連接到您的圖像采集設(shè)備并選擇合適的參數(shù)
3.2 連接多個板卡和攝像頭
大多數(shù) HALCON 采集接口允許使用多個圖像采集卡和相機。但是,連接攝像機和電路板以及從 HALCON 內(nèi)部訪問這些配置的方法不止一種。下面,我們描述不同的配置;請檢查您的圖像采集設(shè)備的 HALCON 接口的在線文檔(請參閱 %HALCONROOT%dochtmlmanuals、Windows 開始菜單中的 HALCON 文件夾,或 http://www.halcon.com/image-acquisition) 它支持哪些配置。
3.2.1 單攝像頭
圖 3.2a 顯示了最簡單的配置:單個攝像頭連接到單個板上,可通過單個手柄訪問。一些圖像采集卡,尤其是數(shù)字圖像采集卡,只支持這種配置;如以下部分所述,您仍然可以通過將每個攝像頭連接到單獨的電路板來使用具有此類圖像采集卡的多個攝像頭。請注意,此配置是通過 USB 2.0、IEEE 1394 或 GigE 連接的數(shù)碼相機的典型配置。
3.2.2 Multiple Boards
圖 3.2b 顯示了具有多個攝像頭的配置,每個攝像頭都連接到單獨的電路板。在這種情況下,您在 HDevelop 示例程序 solution_guideimage_acquisitionmultiple_boards.hdev 中為每個連接調(diào)用一次操作符 open_framegrabber。
圖 3.2:a) 單板單攝像頭;b) 多塊板,每塊帶一個攝像頭;c) 帶有一個或多個攝像頭的多塊板;d) 單板多攝像頭和端口切換;e) 單板多攝像頭同時抓??;f) 使用多個電路板和相機同時抓取
open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘default’, ‘default’, Board0, -1, -1, AcqHandle0)
open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘default’, ‘default’, Board1, -1, -1, AcqHandle1)
在此示例中,兩個調(diào)用僅在參數(shù) Device(“0”和“1”)的值上有所不同;當(dāng)然,您也可以為其他參數(shù)使用不同的值,甚至可以連接到不同的圖像采集接口。
要從兩個攝像頭抓取圖像,您只需使用兩次調(diào)用 open_framegrabber 返回的兩個句柄調(diào)用一次操作符grab_image:
grab_image (Image0, AcqHandle0)
grab_image (Image1, AcqHandle1)
3.2.3 每塊板有多個手柄
許多圖像采集卡提供多個輸入端口,因此允許將多個攝像頭連接到板上。根據(jù) HALCON 采集接口的不同,可以通過本節(jié)和以下各節(jié)中描述的不同方式訪問此配置。
連接相機的標(biāo)準(zhǔn)HALCON方法如圖3.2c所示:每個連接都有自己的句柄,即open_framegrabber為每個相機調(diào)用一次,參數(shù)Port的值不同,如HDevelop示例程序solution_guideimage_acquisition multiple_ports.hdev:
open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1,
‘default’, ‘default’, Board0, Port0, -1, AcqHandle0)
open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1,
‘default’, ‘default’, Board1, Port1, -1, AcqHandle1)
grab_image (Image0, AcqHandle0) grab_image (Image1, AcqHandle1)
如圖 3.2c 所示,您還可以使用多個板卡連接多個攝像頭
3.2.4 端口交換
一些圖像采集接口不通過多個手柄訪問相機,而是通過動態(tài)切換輸入端口(見圖 3.2d)。因此,open_framegrabber 只被調(diào)用一次,就像在 HDevelop 示例程序 solution_guideimage_acquisitionport_switching.hdev 中一樣:
open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘default’, ‘default’, ‘default’, 0, -1, AcqHandle)
在抓取圖像之間,您使用運算符 set_framegrabber_param 切換端口
set_framegrabber_param (AcqHandle, ‘port’, Port0)
dev_set_window (WindowHandle0)
grab_image (Image0, AcqHandle)
set_framegrabber_param (AcqHandle, ‘port’, Port1)
dev_set_window (WindowHandle1)
grab_image (Image1, AcqHandle)
注意,端口切換僅適用于兼容(類似)相機,因為 open_framegrabber 僅被調(diào)用一次,即所有相機使用相同的參數(shù)值集。相比之下,當(dāng)如上所述使用多個手柄時,您可以為各個相機指定不同的參數(shù)值(有一些特定于板的限制)。
3.2.5 同時抓取(僅針對特定接口)
在上述配置中,圖像是通過多次調(diào)用操作者grab_image從單個相機中抓取的。相比之下,一些采集接口允許通過一次調(diào)用grab_image從多個攝像頭抓取圖像,然后返回多通道圖像(參見圖3.2e;第51頁的附錄A.1包含有關(guān)多通道圖像的更多信息) 。 這種模式稱為同時抓?。ɑ虿⑿凶ト。?;與端口切換一樣,它僅適用于兼容(類似)的相機。例如,您可以使用此模式從立體相機系統(tǒng)中抓取同步圖像。請注意,同時抓取僅適用于極少數(shù)圖像采集接口。
在這種模式下,open_framegrabber 只被調(diào)用一次,可以在 HDevelop 示例程序 solution_guideimage_acquisitionsimultaneous_grabbing.hdev 中看到:
open_framegrabber (AcqName, 1, 1, 0, 0, 0, 0, ‘default’, -1, ‘default’, -1, ‘default’, ‘default’, ‘default’, 0, -1, AcqHandle)
您可以使用運算符 count_channels 檢查返回圖像(通道)的數(shù)量
grab_image (SimulImages, AcqHandle)
count_channels (SimulImages, num_channels)
并根據(jù)圖像數(shù)量提取單個圖像,例如使用分解2、分解3等:
if (num_channels == 2)
decompose2 (SimulImages, Image0, Image1)
或者,您可以使用 image_to_channels 將多通道圖像轉(zhuǎn)換為圖像數(shù)組,然后通過 select_obj 選擇單個圖像。
3.3 請求有關(guān)圖像采集接口的信息
如前所述,各個 HALCON 采集接口在 HTML 頁面上有詳細(xì)描述,這些頁面可以在目錄 %HALCONROOT%dochtmlmanuals 或 Windows 開始菜單的 HALCON 文件夾中找到(如果您安裝了文檔)。另一種訪問圖像采集接口信息的方法是使用操作符 info_framegrabber。
在HDevelop示例程序solution_guideimage_acquisitioninfo_framegrabber.hdev(為HALCON 1394IIDC接口預(yù)配置,請根據(jù)自己的圖像采集設(shè)備調(diào)整接口名稱)多次調(diào)用該算子查詢接口版本號、可用設(shè)備 ,端口號,相機類型,以及open_framegrabber所有參數(shù)的默認(rèn)值;結(jié)果,即 HDevelop 變量窗口中顯示的值,如圖 3.3 所示。
info_framegrabber (AcqName, ‘general’, GeneralInfo, GeneralValue)
info_framegrabber (AcqName, ‘revision’, RevisionInfo, RevisionValue) info_framegrabber (AcqName, ‘info_boards’, BoardsInfo, BoardsValue) info_framegrabber (AcqName, ‘generic’, GenericInfo, GenericValue)
info_framegrabber (AcqName, ‘camera_type’, CamTypeInfo, CamTypeValue) info_framegrabber (AcqName, ‘defaults’, DefaultsInfo, DefaultsValue)
在使用 open_framegrabber 實際連接到圖像采集設(shè)備之前,可以調(diào)用操作符 info_framegrabber。唯一的條件是已經(jīng)安裝了HALCON采集接口和設(shè)備驅(qū)動和SDK。
審核編輯 :李倩
-
圖像采集
+關(guān)注
關(guān)注
2文章
300瀏覽量
41280 -
相機
+關(guān)注
關(guān)注
4文章
1351瀏覽量
53620
發(fā)布評論請先 登錄
相關(guān)推薦
評論