作為Halcon學習者,在使用HDevelop程式設計時,最基礎的操作就是先将測試圖像讀取導入。核心函數算子是read_image(),下面我們來分别示範如何使用它讀取單張圖檔、多張有序圖檔和多張無序圖檔。
一、讀取單張圖檔
① 代碼讀取
* (1)-Halcon讀取圖像--讀取單張圖檔
read_image(Image, './imgs/1.bmp')
② 助手讀取--》選擇檔案--》插入代碼:
* 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'
* 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'
* 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
三、批量讀取圖檔--無序(命名無序圖檔)
① 代碼讀取
* (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
② 助手讀取--》選擇路徑--》插入代碼:
* Image Acquisition 01: Code generated by Image Acquisition 01list_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 somethingendfor
四、讀取例程圖檔
Halcon例程圖檔路徑:C:\Users\Public\Documents\MVTec\HALCON-20.11-Steady\examples\images
Halcon安裝時已經上面的目錄加入到環境變量了,是以我們可以直接用這些圖檔。
例如:read_image (Image, 'printer_chip/printer_chip_01')
讀取到的圖檔就是下面目錄下的第一張圖