RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

連接到您的圖像采集設(shè)備

機(jī)器人及PLC自動化應(yīng)用 ? 來源:機(jī)器人及PLC自動化應(yīng)用 ? 2023-04-23 09:48 ? 次閱讀

連接到圖像采集卡

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 時。

8c0c47e2-e04a-11ed-bfe3-dac502259ad0.png

圖 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

在示例中,然后使用運(yùn)算符 auto_threshold 自動分割抓取的圖像(見圖 2.1)。這是在循環(huán)中完成的,可以通過用鼠標(biāo)左鍵單擊窗口來退出。

3、連接到您的圖像采集設(shè)備

在本節(jié)中,我們將展示如何連接到不同配置的圖像采集卡和相機(jī),從一個相機(jī)連接到一個圖像采集卡的簡單情況到更復(fù)雜的情況,例如多個同步相機(jī)連接到 一塊或多塊板。

8c383a46-e04a-11ed-bfe3-dac502259ad0.png

3.1 打開指定配置的連接

用操作符 open_framegrabber,您可以打開與圖像采集設(shè)備的連接。這種連接由四個參數(shù)描述(見圖 3.1):首先,您選擇一個帶有參數(shù) Name 的采集接口。參數(shù) Device 指定實際的板卡或相機(jī);根據(jù)采集接口,該參數(shù)可以包含描述板的字符串或簡單的數(shù)字(以字符串的形式?。?。

通常,相機(jī)可以連接到不同端口的圖像采集卡,其數(shù)量可以通過參數(shù) Port(在極少數(shù)情況下為 LineIn)來選擇。參數(shù) CameraType 描述了連接的攝像頭:對于模擬攝像頭,該參數(shù)通常指定使用的信號范數(shù),例如,‘ntsc’。對于數(shù)碼相機(jī),此參數(shù)通常指定相機(jī)型號;更復(fù)雜的采集接口使用此參數(shù)來選擇相機(jī)配置文件。

因此,open_framegrabber 在參數(shù) AcqHandle 中返回打開連接的句柄。請注意,如果您使用 HALCON 的 COM 或 C++ 接口并通過相應(yīng)的類調(diào)用操作符,例如 C++ 中的 HFramegrabber,則不會返回句柄,因為類的實例本身充當(dāng)您的句柄。

使用 HDevelop 的圖像采集助手,您可以輕松連接到您的圖像采集設(shè)備并選擇合適的參數(shù)

3.2 連接多個板卡和攝像頭

大多數(shù) HALCON 采集接口允許使用多個圖像采集卡和相機(jī)。但是,連接攝像機(jī)和電路板以及從 HALCON 內(nèi)部訪問這些配置的方法不止一種。下面,我們描述不同的配置;請檢查您的圖像采集設(shè)備的 HALCON 接口的在線文檔(請參閱 %HALCONROOT%dochtmlmanuals、Windows 開始菜單中的 HALCON 文件夾,或 http://www.halcon.com/image-acquisition) 它支持哪些配置。

3.2.1 單攝像頭

圖 3.2a 顯示了最簡單的配置:單個攝像頭連接到單個板上,可通過單個手柄訪問。一些圖像采集卡,尤其是數(shù)字圖像采集卡,只支持這種配置;如以下部分所述,您仍然可以通過將每個攝像頭連接到單獨(dú)的電路板來使用具有此類圖像采集卡的多個攝像頭。請注意,此配置是通過 USB 2.0、IEEE 1394 或 GigE 連接的數(shù)碼相機(jī)的典型配置。

3.2.2 Multiple Boards

圖 3.2b 顯示了具有多個攝像頭的配置,每個攝像頭都連接到單獨(dú)的電路板。在這種情況下,您在 HDevelop 示例程序 solution_guideimage_acquisitionmultiple_boards.hdev 中為每個連接調(diào)用一次操作符 open_framegrabber。

8c56fb3e-e04a-11ed-bfe3-dac502259ad0.png

圖 3.2:a) 單板單攝像頭;b) 多塊板,每塊帶一個攝像頭;c) 帶有一個或多個攝像頭的多塊板;d) 單板多攝像頭和端口切換;e) 單板多攝像頭同時抓??;f) 使用多個電路板和相機(jī)同時抓取

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é)中描述的不同方式訪問此配置。

連接相機(jī)的標(biāo)準(zhǔn)HALCON方法如圖3.2c所示:每個連接都有自己的句柄,即open_framegrabber為每個相機(jī)調(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 端口交換

一些圖像采集接口不通過多個手柄訪問相機(jī),而是通過動態(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)

在抓取圖像之間,您使用運(yùn)算符 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)

注意,端口切換僅適用于兼容(類似)相機(jī),因為 open_framegrabber 僅被調(diào)用一次,即所有相機(jī)使用相同的參數(shù)值集。相比之下,當(dāng)如上所述使用多個手柄時,您可以為各個相機(jī)指定不同的參數(shù)值(有一些特定于板的限制)。

3.2.5 同時抓?。▋H針對特定接口)

在上述配置中,圖像是通過多次調(diào)用操作者grab_image從單個相機(jī)中抓取的。相比之下,一些采集接口允許通過一次調(diào)用grab_image從多個攝像頭抓取圖像,然后返回多通道圖像(參見圖3.2e;第51頁的附錄A.1包含有關(guān)多通道圖像的更多信息) 。 這種模式稱為同時抓取(或并行抓?。?;與端口切換一樣,它僅適用于兼容(類似)的相機(jī)。例如,您可以使用此模式從立體相機(jī)系統(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)

您可以使用運(yùn)算符 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è)備 ,端口號,相機(jī)類型,以及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。

8c8100d2-e04a-11ed-bfe3-dac502259ad0.png

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像采集
    +關(guān)注

    關(guān)注

    2

    文章

    299

    瀏覽量

    41276
  • 相機(jī)
    +關(guān)注

    關(guān)注

    4

    文章

    1350

    瀏覽量

    53581
收藏 人收藏

    評論

    RM新时代网站-首页