dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image01, 'G:/SoftwareLearning/halcon/模板匹配/01.png')
rgb1_to_gray (Image01, GrayImage)
*draw_circle (WindowHandle, Row, Column, Radius)
gen_circle (Circle, 273.92, 280.125, 100.31)
reduce_domain (GrayImage, Circle, ImageReduced)
create_scaled_shape_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 0.9, 1.1, 'auto', 'auto', 'use_polarity', 40, 'auto', ModelID)
get_shape_model_contours (ModelContours, ModelID, 1)
area_center (Circle, Area, Row, Column)
vector_angle_to_rigid (0, 0, 0, Row, Column, 0, HomMat2D)
affine_trans_contour_xld (ModelContours, ContoursAffineTrans, HomMat2D)
dev_display (Image01)
dev_display (ContoursAffineTrans)
read_image (Image, 'G:/SoftwareLearning/halcon/模板匹配/02.png')
rgb1_to_gray (Image, GrayImage1)
find_scaled_shape_model (GrayImage1, ModelID, -0.39, 0.78, 0.9, 1.1, 0.5, 0, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Scale, Score)
for i:=0 to |Score|-1 by 1
*单位矩阵
hom_mat2d_identity (HomMat2DIdentity)
*平移矩阵
hom_mat2d_translate (HomMat2DIdentity, Row1[i], Column1[i], HomMat2DTranslate)
*旋转矩阵
hom_mat2d_rotate (HomMat2DTranslate, Angle[i], Row1[i], Column1[i], HomMat2DRotate)
*缩放矩阵
hom_mat2d_scale (HomMat2DRotate, Scale[i], Scale[i], Row1[i], Column1[i], HomMat2DScale)
affine_trans_contour_xld (ModelContours, ContoursAffineTrans, HomMat2DScale)
dev_display (ContoursAffineTrans)
endfor
运行结果
模板图像
测试图像