7.1 模板匹配原理
7.2 ncc模板匹配
7.3 形状模板匹配
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image1, 'C:/Users/haokunlee/Desktop/《halcon机器视觉教程》素材及程序/7-2/1.jpg')
rgb1_to_gray (Image1, GrayImage)
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
reduce_domain (GrayImage, Rectangle, ImageReduced)
*先创建形状模板
create_shape_model (ImageReduced, 'auto', -0.2, 0.2, 0.1, 'auto', 'use_polarity', 'auto', 'auto', ModelID)
find_shape_model (GrayImage, ModelID, -0.2, 0.2, 0.5, 4, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
get_domain (ImageReduced, Domain)
area_center (Domain, Area, Row3, Column3)
for i := 0 to |Angle|-1 by 1
vector_angle_to_rigid (Row3, Column3, 0, Row[i], Column[i], Angle[i], HomMat2D)
affine_trans_region (Domain, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
stop ()
endfor
7.4 xld模板匹配
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image1, 'C:/Users/haokunlee/Desktop/《halcon机器视觉教程》素材及程序/7-5/1.bmp')
rgb1_to_gray (Image1, GrayImage)
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
smallest_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
gen_rectangle2_contour_xld (Rectangle1, Row, Column, Phi, Length1, Length2)
*创建xld模板
create_shape_model_xld (Rectangle1, 'auto', -0.2, 0.2, 0.05, 'auto', 'ignore_local_polarity', 5, ModelID)
*模板匹配
find_shape_model (GrayImage, ModelID, -0.2, 0.2, 0.5, 7, 0.5, 'least_squares', 0, 0.9, Row3, Column3, Angle, Score)
area_center_xld (Rectangle1, Area, Row4, Column4, PointOrder)
gen_empty_obj (Obj)
for i := 0 to |Row3|-1 by 1
vector_angle_to_rigid (Row4, Column4, 0, Row3[i], Column3[i], Angle[i], HomMat2D)
affine_trans_contour_xld (Rectangle1, ContoursAffineTrans, HomMat2D)
concat_obj (Obj, ContoursAffineTrans, Obj)
endfor
1 模板创建
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image1, 'C:/Users/haokunlee/Desktop/《halcon机器视觉教程》素材及程序/7-5/1.bmp')
rgb1_to_gray (Image1, GrayImage)
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
smallest_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
gen_rectangle2_contour_xld (Rectangle1, Row, Column, Phi, Length1, Length2)
*创建xld模板
create_shape_model_xld (Rectangle1, 'auto', -0.2, 0.2, 0.01, 'auto', 'ignore_local_polarity', 5, ModelID)
*shm
write_shape_model (ModelID, '1.shm')
write_object (Rectangle1, '1.hobj')
2 模板匹配
dev_update_off ()
read_image (Image1, 'C:/Users/haokunlee/Desktop/《halcon机器视觉教程》素材及程序/7-5/1.bmp')
rgb1_to_gray (Image1, GrayImage)
read_shape_model ('1.shm', ModelID)
read_object (Rectangle1, '1.hobj')
gen_rectangle1 (Rectangle, 10, 33, 309, 1561)
reduce_domain (GrayImage, Rectangle, ImageReduced)
*模板匹配
find_shape_model (ImageReduced, ModelID, -0.2, 0.2, 0.5, 7, 0.5, 'least_squares', 0, 0.9, Row3, Column3, Angle, Score)
area_center_xld (Rectangle1, Area, Row4, Column4, PointOrder)
gen_empty_obj (Obj)
for i := 0 to |Row3|-1 by 1
vector_angle_to_rigid (Row4, Column4, 0, Row3[i], Column3[i], Angle[i], HomMat2D)
affine_trans_contour_xld (Rectangle1, ContoursAffineTrans, HomMat2D)
concat_obj (Obj, ContoursAffineTrans, Obj)
endfor