Halcon模板匹配例項 1

2021-07-09 05:02:27 字數 1443 閱讀 3490

用halcon形狀模版匹配,紅色矩形框是搜尋範圍roi   矩形框中間的是我訓練的模版,按理說應該只會匹配到roi中中間的那個  為什麼會搜到搜尋區域之外的部分,而且匹配分數還很高,這個設定set_system ('border_shape_models', 'false'),不是可以決定是否可以匹配出影象邊界的地方嗎

set_system ('border_shape_models', 'false')

read_image (image, 'd:/img/img.0.bmp')

gen_rectangle1 (modelregion, 175.5, 310.5, 235.5, 357.5)

reduce_domain (image, modelregion, templateimage)

create_shape_model (templateimage, 4, rad(0), rad(360), rad(3.0317), ['none','no_pregeneration'], 'use_polarity', [39,50,4], 5, modelid)

get_shape_model_contours (modelcontours, modelid, 1)

draw_rectangle1(3600, row1, column1, row2, column2)

gen_rectangle1(rectangle, row1, column1, row2, column2)

reduce_domain(image,rectangle, imagereduced)

find_shape_model (imagereduced, modelid, rad(0), rad(360), 0.5, 0, 0.5, 'least_squares', [4,1], 0.75, modelrow, modelcolumn, modelangle, modelscore)

for matchingobjidx := 0 to |modelscore| - 1 by 1

hom_mat2d_identity (hommat)

hom_mat2d_rotate (hommat, modelangle[matchingobjidx], 0, 0, hommat)

hom_mat2d_translate (hommat, modelrow[matchingobjidx], modelcolumn[matchingobjidx], hommat)

affine_trans_contour_xld (modelcontours, transcontours, hommat)

dev_display (transcontours)

dev_set_draw('margin')

dev_display(rectangle)

endfor

* matching 01: clear model when done

clear_shape_model (modelid)

模板匹配 HALCON

使用範圍 gray value based matching 要求照明不變的,內部灰度值和模板相同,應用極少 correlation based matching 不變性體現在 散焦 輕微的形變,線性光源,可以很好地處理紋理。僅僅可以處理灰度影象,不支援雜點 遮擋 縮放 非線性照明變換 以及多通道影...

Halcon基於輪廓的模板匹配

大家自己找張測試,就是繪製搜尋區域跟模板提取,提取其輪廓,然後再找一張相似的,從中定位到模板。話不多說,直接上 read image image1,d users s200722103 桌面 r1 f8y046205u1n639a1 038 20201109103715200.jpg dev set...

Halcon可變匹配

如下圖所示,印刷品有較大變形,在用shape based matching時,定位結果就不盡如人意,因為 shape based matching本身得到的匹配結果只是乙個點 row,col 我們根據匹配結果通過仿射變換 將模板轉換到匹配位置時就這個熊樣。怎麼辦?怎麼辦?如果有一種匹配模式,匹配結果...