1. 程式人生 > >Halcon建立模板並進行模板匹配

Halcon建立模板並進行模板匹配

在進行影象處理時,很多時候建立模板並通過匹配模板進行影象基準點的分析能大大提高ROI的選取準確度和效率。

下面通過例項來講述模板匹配的快速學習應用。

首先建立模板

先讀取影象,對讀取的影象建立模板並儲存,建立模板要挑選的是所有影象都存在的特徵或區域以保證在實際處理時程式都能夠正常進行影象分析處理。

Halcon中以draw開頭的運算元都是需要人在影象上手動繪製,

程式碼如下:

*讀取影象
read_image (Image, 'H:/NEW IMAGE/21.tiff')
*在影象上手動繪製ROI,即選擇繪製的模板區域
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
*將繪製的模板區域生成矩形
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
*提取出區域的影象,作為模板影象
reduce_domain (Image, Rectangle, ImageReduced1)
*建立模板
create_shape_model (ImageReduced1, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
*將建立的模板存成指定路徑的檔案
write_shape_model (ModelID, 'E:/modle1.shm')

模板建立完後下面的處理程式只需要上面程式碼最後儲存的那個模板檔案,程式碼如下:

*讀取影象
read_image (Image1, 'H:/NEW IMAGE/13.tiff')
*讀取模板檔案
read_shape_model ('E:/modle1.shm', ModelID1)
*在影象中查詢模板,並返回模板的中心座標
find_shape_model (Image1, ModelID1, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle1, Score1)
*匹配到模板
if(|Row1|==1)
*在影象中顯示模板
    dev_display_shape_matching_results (ModelID1, 'red', Row1, Column1, Angle1, 1, 1, 0)
endif

以上就是簡單的模板建立以及模板匹配,希望對大家有所幫助,謝謝。