在進行圖像處理時,很多時候創建模板並通過匹配模板進行圖像基准點的分析能大大提高ROI的選取准確度和效率。
下面通過實例來講述模板匹配的快速學習應用。
首先創建模板
先讀取圖像,對讀取的圖像創建模板並保存,創建模板要挑選的是所有圖像都存在的特征或區域以保證在實際處理時程序都能夠正常進行圖像分析處理。
Halcon中以draw開頭的算子都是需要人在圖像上手動繪制,
代碼如下:
1 *讀取圖像 2 read_image (Image, 'H:/NEW IMAGE/21.tiff') 3 *在圖像上手動繪制ROI,即選擇繪制的模板區域 4 draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2) 5 *將繪制的模板區域生成矩形 6 gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2) 7 *提取出區域的圖像,作為模板圖像 8 reduce_domain (Image, Rectangle, ImageReduced1) 9 *創建模板 10 create_shape_model (ImageReduced1, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID) 11 *將創建的模板存成指定路徑的文件 12 write_shape_model (ModelID, 'E:/modle1.shm')
模板創建完后下面的處理程序只需要上面代碼最后保存的那個模板文件,代碼如下:
1 *讀取圖像 2 read_image (Image1, 'H:/NEW IMAGE/13.tiff') 3 *讀取模板文件 4 read_shape_model ('E:/modle1.shm', ModelID1) 5 *在圖像中查找模板,並返回模板的中心坐標 6 find_shape_model (Image1, ModelID1, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle1, Score1) 7 *匹配到模板 8 if(|Row1|==1) 9 *在圖像中顯示模板 10 dev_display_shape_matching_results (ModelID1, 'red', Row1, Column1, Angle1, 1, 1, 0) 11 endif
以上就是簡單的模板創建以及模板匹配,希望對大家有所幫助,謝謝。