Halcon基於輪廓的模板匹配

2021-10-11 01:43:05 字數 2427 閱讀 4272

大家自己找張測試,就是繪製搜尋區域跟模板提取,提取其輪廓,然後再找一張相似的,從中定位到模板。話不多說,直接上**。

read_image (image1, 『d:/users/s200722103/桌面/r1_f8y046205u1n639a1+038_20201109103715200.jpg』)

dev_set_draw (『margin』)

dev_set_line_width (2)

*模板尋找區域

draw_rectangle2 (3600, row, column, phi, length1, length2)

*gen_rectangle2 (rectangle, row, column, phi, length1, length2)

dev_display (image1)

dev_display (rectangle)

*模板區域

draw_rectangle2 (3600, row1, column1, phi1, length11, length21)

gen_rectangle2 (rectangle1, row1, column1, phi1, length11, length21)

reduce_domain (image1, rectangle1, imagereduced)

area_center (rectangle1, area, row2, column2)

*儲存模板行列座標

write_tuple (row2, 『d:/users/s200722103/桌面/halcon模板匹配(仿)/shapemodel_row.tup』)

write_tuple (column2, 『d:/users/s200722103/桌面/halcon模板匹配(仿)/shapemodel_col.tup』)

create_shape_model (imagereduced, 7, phi1, 360, 0.3153, 『no_pregeneration』, 『use_polarity』, 『auto』, 『auto』, modelid)

*得到模板輪廓

get_shape_model_contours (modelcontours, modelid, 1)

*仿射變化矩陣

hom_mat2d_identity (hommat2didentity)

hom_mat2d_translate (hommat2didentity, row2, column2, hommat2dtranslate)

*計算仿射變換後的位置

affine_trans_contour_xld (modelcontours, contoursaffintrans, hommat2dtranslate)

dev_display (image1)

dev_display (contoursaffintrans)

*modelcontours

stop ()

write_shape_model (modelid, 『d:/users/s200722103/桌面/halcon模板匹配(仿)/shapemodel_id.shm』)

*read_image (image2, 『d:/users/s200722103/桌面/pcm圖/1.bmp』)

*read_image (image2, 『d:/users/s200722103/桌面/pcm圖/3.bmp』)

reduce_domain (image2, rectangle, imagereduced2)

*第五個引數為最小匹配角度

find_shape_model (imagereduced2, modelid, 0, rad(17), 0.1, 1, 0.5, 『least_squares』, 0, 0.9, row3, column3, angle, score)

*find_shape_model (imagereduced2, modelid, 0, rad(17), 0.8, 1, 0.5, 『least_squares』, 0, 0.9, row3, column3, angle, score)

*vector_angle_to_rigid (0, 0, 0, row3, column3, angle, hommat2d)

hom_mat2d_identity (hommat2didentity1)

hom_mat2d_translate (hommat2didentity1, row3, column3, hommat2dtranslate1)

hom_mat2d_rotate (hommat2dtranslate1, angle, row3, column3, hommat2drotate2)

affine_trans_contour_xld (modelcontours, contoursaffintrans, hommat2drotate2)

dev_display (contoursaffintrans)

stop ()

基於halcon的形狀模板輪廓篩選

我這人比較懶得羅里吧嗦,基本都是直接說兩點 why?how?有需求,才會去做。有時候,在一張質量不怎麼好的影象上做模板,比如,有很多干擾點 背景或者其他不想要的輪廓,除了生成模板後,再慢慢去用橡皮擦來擦除它,還有一種更直接了當的方法 篩選。bool gendesiredcontours const ...

模板匹配 HALCON

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

基於HALCON的模板匹配方法總結

1.shape based matching的基本流程 首先確定出roi的矩形區域,這裡只需要確定矩形的左上點和右下點的座標即可,gen rectangle1 這個函式就會幫助你生成乙個矩形,利用area center 找到這個矩形的中心 然後需要從影象中獲取這個矩形區域的影象,reduce dom...