1. 程式人生 > 其它 >模板匹配 - find_shape_model裡的引數Row, Column, Angle

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