模板匹配 - find_shape_model里的参数Row, Column, Angle
官方文档对算子解释:
find_shape_model(Image : : //搜索图像
ModelID, //模板句柄
AngleStart, // 搜索时的起始角度
AngleExtent, //搜索时的角度范围,必须与创建模板时的有交集
MinScore, //最小匹配值,输出的匹配的得分Score 大于该值
NumMatches, //定义要输出的匹配的最大个数
MaxOverlap, //当找到的目标存在重叠时,且重叠大于该值时选择一个好的输出
//如果MaxOverlap=0, 找到的目标区域不能存在重叠, 如果MaxOverla p=1,所有找到的目标区域都要返回。
SubPixel, //计算精度的设置,五种模式,多选2,3
NumLevels, //搜索时金字塔的层数
Greediness : //贪婪度,搜索启发式,一般都设为0.9,越高速度快,容易出现找不到的情况
//0安全慢;1块不稳定;其他就是介于中间值
Row,Column, Angle, Score) //输出匹配位置的行和列坐标、角度、得分。
理解:
红色区域(看成一个像素)坐标相对于整幅图像左上角的位置,在定位时,求出的这个值不能作为纠偏值,可以用来进行显示:
1 dev_clear_window() 2 read_image (Image, 'E:/欣奕华/学习/Halcon/模板匹配/1.bmp') 3 dev_open_window(0, 0, 512, 512, 'black', WindowHandle) 4 dev_set_draw('margin') 5 gen_rectangle1 (ROI_0, 906.39, 1409.85, 1018.01, 1521.48) 6 reduce_domain(Image, ROI_0, ImageReduced) 7 8 9 create_shape_model(ImageReduced, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID) 10 get_shape_model_contours(ModelContours, ModelID, 1) 11 12 length_xld(ModelContours, Length) 13 tuple_max(Length, Max) 14 tuple_find(Max, Max, Indices) 15 select_obj(ModelContours, ObjectSelected, Indices+1) 16 17 area_center(ROI_0, Area, Row, Column) 18 vector_angle_to_rigid(0, 0, 0, Row, Column, 0, HomMat2D) 19 affine_trans_contour_xld(ObjectSelected, ContoursAffinTrans, HomMat2D) 20 21 dev_clear_window() 22 dev_display(ContoursAffinTrans) 23 read_image (Image2, 'E:/欣奕华/学习/Halcon/模板匹配/2.bmp') 24 25 find_shape_model(Image2, ModelID, -0.39, 0.78, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Score) 26 vector_angle_to_rigid(0, 0, 0, Row1, Column1, 0, HomMat2D) 27 28 affine_trans_contour_xld(ObjectSelected, ContoursAffinTrans, HomMat2D)