用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 我們根據匹配結果通過仿射變換 將模板轉換到匹配位置時就這個熊樣。怎麼辦?怎麼辦?如果有一種匹配模式,匹配結果...