天天看點

Halcon讀取圖檔方法總結--單張讀取、有序批量讀取、無序批量讀取

作為Halcon學習者,在使用HDevelop程式設計時,最基礎的操作就是先将測試圖像讀取導入。核心函數算子是read_image(),下面我們來分别示範如何使用它讀取單張圖檔、多張有序圖檔和多張無序圖檔。

​一、讀取單張圖檔

① 代碼讀取

​* (1)-Halcon讀取圖像--讀取單張圖檔​

​​

​read_image(Image, './imgs/1.bmp')​

② 助手讀取--》選擇檔案--》插入代碼: 

Halcon讀取圖檔方法總結--單張讀取、有序批量讀取、無序批量讀取

​* Image Acquisition 01: Code generated by Image Acquisition 01​

​​

​read_image (Image, 'E:/Practice/Halcon/Halcon_Study/Function_Study/imgs/1.bmp')​

二、批量讀取圖檔--有序(命名有序圖檔)

① 圖檔命名規則:'./imgs/1.bmp', './imgs/2.bmp', './imgs/3.bmp'

Halcon讀取圖檔方法總結--單張讀取、有序批量讀取、無序批量讀取
​​* i取值為1,2,3,圖檔路徑為'./imgs/1.bmp', './imgs/2.bmp', './imgs/3.bmp'​​​​for i:=1 to 3 by 1​​​​'./imgs/' + i + '.bmp')​​​​endfor​​      

② 圖檔命名規則:'./imgs/left01.bmp', './imgs/left02.bmp', './imgs/left03.bmp'

Halcon讀取圖檔方法總結--單張讀取、有序批量讀取、無序批量讀取
​​* i取值為1,2,3,圖檔路徑為'./imgs/left01.bmp', './imgs/left02.bmp', './imgs/left03.bmp'​​​​for j := 1 to 3 by 1​​​​'./imgs/' + 'left' + j$'02')​​​
​​​endfor​​      

三、批量讀取圖檔--無序(命名無序圖檔)

Halcon讀取圖檔方法總結--單張讀取、有序批量讀取、無序批量讀取

① 代碼讀取

​​* (3)-Halcon讀取圖像--批量讀取(命名無序圖檔)​​​​* 列出imgs檔案夾下所有檔案路徑​​​​list_files ('./imgs', 'files', ImageFiles)​​​​* 選擇符合條件的檔案(jpg/png/bmp)​​​​tuple_regexp_select (ImageFiles, '.*jpg|png|bmp', Selection)​​​​* 循環讀取檔案夾中的圖像​​​​for i:=0 to |Selection| - 1 by 1​​​​    read_image (Image_Test, Selection[i])​​​​endfor​​      

② 助手讀取--》選擇路徑--》插入代碼: 

Halcon讀取圖檔方法總結--單張讀取、有序批量讀取、無序批量讀取
​​* Image Acquisition 01: Code generated by Image Acquisition 01​​​​list_files ('E:/Practice/Halcon/Halcon_Study/Function_Study/imgs', ['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 1​​​​    read_image (Image, ImageFiles[Index])​​​​01: Do something​​​​endfor      

四、讀取例程圖檔

Halcon例程圖檔路徑:C:\Users\Public\Documents\MVTec\HALCON-20.11-Steady\examples\images

Halcon安裝時已經上面的目錄加入到環境變量了,是以我們可以直接用這些圖檔。

Halcon讀取圖檔方法總結--單張讀取、有序批量讀取、無序批量讀取
Halcon讀取圖檔方法總結--單張讀取、有序批量讀取、無序批量讀取

例如:read_image (Image, 'printer_chip/printer_chip_01')

Halcon讀取圖檔方法總結--單張讀取、有序批量讀取、無序批量讀取

讀取到的圖檔就是下面目錄下的第一張圖