【机器视觉】 halcon中图像获取
00. 目錄
文章目錄
- 00. 目錄
- 01. 概述
- 02. 相機(jī)接口
- 2.1 USB接口
- 2.2 IEEE1394接口
- 2.3 CameraLink接口
- 2.4 GigE千兆以太網(wǎng)接口
- 2.5 CoaXPress接口
- 2.6 Nbase-T接口
- 2.7 光纖接口
- 03. Halcon圖像采集過程
- 3.1 打開設(shè)備
- 3.2 設(shè)置相機(jī)參數(shù)
- 3.3 獲取圖像
- 3.4 結(jié)束采集圖像
- 04. Halcon相機(jī)助手
- 05. 文件讀取
- 5.1 通過讀取圖像助手讀取圖像
- 5.2 通過拖拽文件到主窗口
- 5.3 通過圖像采集助手讀取圖片
- 5.4 通過代碼讀取圖像
- 5.5 通過代碼生成圖像
- 06. 預(yù)留
- 07. 附錄
01. 概述
Halcon是一款圖像處理軟件。在Halcon中獲取圖像有3種方式:
- 使用硬件采集圖像
- 直接讀取采集好的圖像
- 通過某些方法生成一張圖像
02. 相機(jī)接口
2.1 USB接口
USB接口相機(jī)是數(shù)字相機(jī),直接輸出數(shù)字圖像信號。USB全稱是UniversalSerialBus(通用串行總線),USB接口是4“針”,其中2根為電源線、2根為信號線。USB是串行接口,可熱拔插,連接方便。USB2.0,傳輸速度480Mbps,通訊距離5m,80%的帶寬用于圖像傳輸。USB3.0,傳輸速度4.8Gbps,通訊距離10m,80%的帶寬用于圖像傳輸。由于USB接口相機(jī)使用方便,接口廣泛,目前在顯微鏡、科研實驗、便攜式設(shè)備等行業(yè)大量應(yīng)用。
2.2 IEEE1394接口
1394接口,又稱“火線”(FireWire),用于將數(shù)碼產(chǎn)品與計算機(jī)及其他機(jī)器之間的連接。IEEE1394總線是高速串行總線,1394a最高的傳輸速度為400Mbps,1394b最高的傳輸速度為800Mbps。IEEE1394支持熱插拔、數(shù)據(jù)傳輸實時性、采用總線結(jié)構(gòu)、即插即用。1394接口分為4芯和6芯,4芯中有兩對數(shù)據(jù)線,6芯除數(shù)據(jù)線外還包括一組電源線以對外接設(shè)備進(jìn)行供電。IEEE1394接口,不需要控制器,可以實現(xiàn)對等傳輸,1394a最大傳輸距離為4.5米,1394b傳輸距離通常為10米,在降數(shù)據(jù)率情況下可延伸到100米(100Mbps),采用中繼設(shè)備支持可進(jìn)一步提高傳輸距離。
2.3 CameraLink接口
由AIA協(xié)會推出的數(shù)字圖像信號通訊接口協(xié)議,是一種串行通訊協(xié)議。采用LVDS接口標(biāo)準(zhǔn),具有速度快、抗干擾能力強(qiáng)、功耗低。從Channellink技術(shù)上發(fā)展而來的,在Channellink技術(shù)基礎(chǔ)上增加了一些傳輸控制信號,并定義了一些相關(guān)傳輸標(biāo)準(zhǔn)。協(xié)議采用MDR-26針連接器或SDR-26針連接器,具有高速率,帶寬可達(dá)6400Mbps、抗干擾能力強(qiáng)、功耗低的特點。
2.4 GigE千兆以太網(wǎng)接口
由AIA(AutomatdeImagingAssociation)創(chuàng)建并推廣,是一種基于千兆以太網(wǎng)通信協(xié)議開發(fā)的相機(jī)接口標(biāo)準(zhǔn)。適用于工業(yè)成像應(yīng)用,通過網(wǎng)絡(luò)傳輸無壓縮視頻信號。是一個使用價格低廉線纜長距離傳輸圖像的標(biāo)準(zhǔn)。
2.5 CoaXPress接口
CoaXPress是一種非對稱的高速點對點串行通信數(shù)字接口標(biāo)準(zhǔn),傳輸速度高達(dá)6.25Gbps,傳輸距離超過100m。數(shù)據(jù)傳輸量大,傳輸距離長,可選擇傳輸距離和傳輸量:從50m@6.25Gbps到170m@1.25Gbps,價格低廉,易集成、支持熱插拔。
2.6 Nbase-T接口
Nbase-T接口技術(shù)是有Nbase-T聯(lián)盟引領(lǐng)的一種全新的網(wǎng)絡(luò)技術(shù),它通過定義一種新的以太網(wǎng)信號方式,使得現(xiàn)有已安裝的雙絞線能夠在長達(dá)100m的范圍內(nèi)突破線纜1Gb/s的限制。Nbase-T可以讓現(xiàn)有大量安裝的超5類和6類線的傳輸速度達(dá)到2.5Gb/s或5Gb/s。
Nbase-T接口特點如下:它是GigE接口的升級版,在傳輸距離不變,器材不變的情況下,傳輸速度可以達(dá)到5Gb/s。
2.7 光纖接口
光纖接口是基于光纖通信的接口,其傳輸速度可達(dá)16.3Gb/s,單模光纖的連接距離可達(dá)10km,多模光纖的連接距離可達(dá)300m或者500m。一般情況下,光纖需要配備“特別”的采集卡,而且光纖線不能隨意從中間連接,而需要專業(yè)設(shè)備才能連接,在連接處會比較脆弱,易出現(xiàn)故障。
光纖接口特點包括光纖通道傳輸速度快,傳輸距離遠(yuǎn),但需要更新原有線纜設(shè)備。
03. Halcon圖像采集過程
3.1 打開設(shè)備
相關(guān)算子
open_framegrabber 算子
程序示例
* Select a suitable image acquisition interface name AcqName info_framegrabber(AcqName,'port',Information,Values) * Open image acquisition device using the default settings, see * documentation of the actually used interface for more details open_framegrabber(AcqName,1,1,0,0,0,0,'default',-1,'default',-1.0, \'default','default','default',-1,-1,AcqHandle) grab_image(Image,AcqHandle) close_framegrabber(AcqHandle)3.2 設(shè)置相機(jī)參數(shù)
相關(guān)算子
set_framegrabber_param
get_framegrabber_param
不同相機(jī)可以設(shè)置的參數(shù)有所不同。
3.3 獲取圖像
相關(guān)算子
從指定的圖像采集設(shè)備啟動異步采集
grab_image_start
從指定的圖像采集設(shè)備異步采集一幅圖像
grab_image_async
從指定的圖像采集設(shè)備同步抓取圖像
grab_image
異步采集示例
* Select a suitable image acquisition interface named AcqName. open_framegrabber('AcqName', 1, 1, 0, 0, 0, 0, 'default', -1, 'default', \-1.0, 'default', 'default', 'default', -1, -1, AcqHandle) * Start asynchronous grabbing. grab_image_start(AcqHandle, -1) * Run acquisition loop. while (true)* Get image, start next grab.grab_image_async(Image, AcqHandle, -1.0)* Next: Do something with the grabbed image. endwhile close_framegrabber(AcqHandle)同步采集圖像示例
* Select a suitable image acquisition interface name AcqName info_framegrabber(AcqName,'port',Information,Values) * Open image acquisition device using the default settings, see * documentation of the actually used interface for more details open_framegrabber(AcqName,1,1,0,0,0,0,'default',-1,'default',-1.0, \'default','default','default',-1,-1,AcqHandle) grab_image(Image,AcqHandle) close_framegrabber(AcqHandle)3.4 結(jié)束采集圖像
相關(guān)算子
關(guān)閉指定的圖像采集設(shè)備
close_framegrabber
04. Halcon相機(jī)助手
通過Halcon相機(jī)助手采集圖像,然后生成代碼。
05. 文件讀取
在不能通過硬件獲取圖像的時候,就需要將拍攝好的圖像加載到程序中,HALCON提供了幾種讀取圖像的方法。
5.1 通過讀取圖像助手讀取圖像
選擇“文件”菜單中的“讀取圖像”的選項
選擇圖像,然后選擇確定
生成代碼如下:
read_image (Image, 'E:/蘋果.jpg')5.2 通過拖拽文件到主窗口
拖拽圖片文件到Halcon主窗口,出現(xiàn)如下對話框
選擇確定,自動插入如下代碼
read_image (Image2, 'E:/蘋果2.jpg')5.3 通過圖像采集助手讀取圖片
最后生成代碼如下
* Image Acquisition 01: Code generated by Image Acquisition 01 list_files ('E:', ['files','follow_links'], ImageFiles) tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles) for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])* Image Acquisition 01: Do something endfor5.4 通過代碼讀取圖像
通過代碼的方式批量讀取文件夾圖像
* Image Acquisition 01: Code generated by Image Acquisition 01* 文件路徑 list_files ('E:/IMG', ['files','follow_links'], ImageFiles)* 篩選圖片格式 tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)* 循環(huán)讀取文件夾圖像 for Index := 0 to |ImageFiles| - 1 by 1read_image (Image, ImageFiles[Index])* Image Acquisition 01: Do something endfor5.5 通過代碼生成圖像
示例代碼如下
* 生成一張無灰度的圖像 gen_image_const (Image, 'byte', 32, 32)* 生成一種灰度漸變的圖像 gen_image_gray_ramp (ImageGrayRamp, 1, 1, 128, 256, 256, 512, 512)* 生成一張有灰度的圖像 gen_image_proto (ImageGrayRamp, ImageCleared, 128)* 設(shè)置圖像某點灰度值 set_grayval (ImageCleared, 10, 10, 255)06. 預(yù)留
07. 附錄
7.1 機(jī)器視覺博客匯總
網(wǎng)址:https://dengjin.blog.csdn.net/article/details/116837497
總結(jié)
以上是生活随笔為你收集整理的【机器视觉】 halcon中图像获取的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器视觉】机器视觉光源详解
- 下一篇: 【生活乐园】深圳技能培训补贴申请流程