halcon模板匹配實踐(3)inspect_shape_model

算子介紹

inspect_shape_model建立形狀模型的表示。運算符對於肯定參數NumLevels和Contrast尤爲有用,它們能夠快速,方便地用於create_shape_model,create_scaled_shape_model或create_aniso_shape_model中。模型的表示是在多個圖像金字塔級別上建立的,其中級別的數量由NumLevels肯定。在其典型用法中,使用NumLevels和Contrast的不一樣參數屢次調用inspect_shape_model,直到得到滿意的模型爲止。以後,使用由此得到的參數調用create_shape_model,create_scaled_shape_model或create_aniso_shape_model。算法

 

舉例說明

《Halcon機器視覺算法原理與編程實戰》,11-12.hdev編程

* -------------------  形狀模板匹配程序  ----------------
*第1步:選擇模板中的目標
Row1 := 281
Column1 := 160
Row2 := 440
Column2 := 312
*用矩形框選定一個目標區域
gen_rectangle1 (ROI, Row1, Column1, Row2, Column2)
*顯示ROI區域
dev_display (ROI)
 *剪裁出這個區域
reduce_domain (ModelImage, ROI, ImageROI)
*第2步,建立模板
 *檢查模板參數
inspect_shape_model (ImageROI, ShapeModelImages, ShapeModelRegions, 4, 50)
 *顯示金字塔各層級的圖像,以檢查層數的合理性
dev_display (ShapeModelRegions)
area_center (ShapeModelRegions, AreaModelRegions, RowModelRegions,ColumnModelRegions)
count_obj (ShapeModelRegions, HeightPyramid)
 *肯定金字塔的層級
for i := 1 to HeightPyramid by 1
if (AreaModelRegions[i - 1] >= 15)
        NumLevels := i
    endif
endfor
 *使用ROI圖像建立模板
create_shape_model (ImageROI, NumLevels, 0, rad(360), 'auto', 'none', 'ignore_global_polarity', 50, 10, ModelID)
*獲取輪廓信息,用於結果顯示
get_shape_model_contours (ShapeModel, ModelID, 1)
相關文章
相關標籤/搜索