行远-自迩

导航

模板匹配 - 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)
View Code

 

posted on 2022-04-06 11:24  行远-自迩  阅读(353)  评论(0编辑  收藏  举报