1. 程式人生 > >Halcon一日一練:讀取檔案目錄影象的三種方法

Halcon一日一練:讀取檔案目錄影象的三種方法

第一種方法:

讀了一個單一影象:

read_image(Image,'fabrik')

這種方式可以快速的讀取軟體自身攜帶的庫影象檔案,系統設定了庫影象映像檔案的快速讀取方式,我們也可以通過絕對地址的方式來讀取指定的目錄檔案:

read_image(Image1,'E:/Halcon一日一練/參考資料/images/圖片1.jpg')

影象設定的映像檔案目錄可以進行關閉,set_system函式可以對映像檔案目錄進行關閉,關閉之後必須讀取影象的絕對地址,否則,系統將會報錯,

set_system('image_dir','false')//關閉影象映像檔案

read_image(Image,'fabrik')//此時系統會報錯

在關閉影象檔案目錄的情況下,再讀取影象將會出現異常,此時我們需要重新設定預設讀取檔案的目錄:

set_system('image_dir','C:\\Program Files\\MVTec\\HALCON-12.0\\images')

read_image(Image,'fabrik')

如果想要讀取自身設定的影象目錄,則是如下方式:

set_system('image_dir','E:\\Halcon一日一練\\參考資料\\images')

read_image(Image,'圖片1')

操作完成後一定要將系統設定回來,並確認目錄定義符一定是上斜線

set_system('image_dir','C:\\Program Files\\MVTec\\HALCON-12.0\\images')

set_system('image_dir,'true')

 

第2種方法:

如果要讀取一組影象,則需要對影象檔案的儲存名稱有一定的規則要求,一般按以下格式設定:‘name_number.imageform'

首先儲存為影象的名稱,下劃線後面追加影象數字序列,這種方式有利於影象的迴圈讀取,看看下面的語句:

for j:= 1 to 9 by 1

     read_image(Image,'fonts/arial_a'+J+'.png')//讀取影象

     dev_display(Image)//顯示影象

     stop()//暫停

endfor

我們將C:\Program Files\MVTec\Halcon-12.0\images\fonts目錄下的9個影象檔案依次讀取並且顯示出來,中間的+號代表了字元間的合併。

 

第三種方法:

    還有一種更好的方法,可以依次讀取目錄中的所有檔案,這種採用虛擬裝置讀取檔案內容的方式,可以直接讀取檔案中所有的影象,這種虛擬裝置的影象讀取方式,讀取外部裝置影象的方式非常接近,只不過獲取影象的裝置設定為檔案方式,操作的方法和外部裝置類似。

例程如下:

tuple_enviroment('HALCONROOT',RootDir)//檔案目錄

DirName:=RootDir+'\images'

*開啟檔案裝置

open_framegraber('File',-1,-1,-1,-1,'default',-,'default',-1,'default',DirName,'default',-1,-1,AcqHandle)

while(1)

      get_framegrabber_param(AcqHandle,'device',CurrentFileName)//設定影象裝置對應的檔案目錄

      grab_image(Image,AcqHandle)//讀取檔案

endwhile

close_framegrable(AcqHandle)//關閉裝置