Halcon算子:NCC匹配(create_ncc_model)與形狀匹配(create_shape_model)對比

當選取的特徵明顯且差異小時,選擇兩者的區別不大。

需要注意的是,NCC對遮擋和雜波以及圖像中的非線性光照變化非常敏感。如果在有遮擋、雜亂或非線性照明變化的情況下發現模型,則應使用基於形狀的匹配(如create_shape_model)執行搜索。 

read_image(Image, 'board/board-01.png')
dev_open_window_fit_image(Image, 0, 0, -1, -1, WindowHandle)
dev_display(Image)
draw_rectangle1(WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1(Rectangle, Row1, Column1, Row2, Column2)
*gen_rectangle1(Rectangle, 197, 186, 289, 405)
area_center(Rectangle, Area, Rowref, Columnref)
reduce_domain(Image, Rectangle, ImageReduced)
create_ncc_model(ImageReduced, 'auto', -3.14, 3.14, 'auto', 'use_polarity', ModelID)
create_shape_model(ImageReduced, 'auto', -3.14, 3.14, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID1)
for index:=2 to 20 by 1
    read_image (Image0, 'board/board-' + index$'02')
    find_ncc_model(Image0, ModelID, -3.14, 3.14, 0.1, 1, 0.5, 'true', 5, Row, Column, Angle, Score)
    vector_angle_to_rigid(Rowref, Columnref, 0, Row, Column, Angle, HomMat2D)
    affine_trans_region(Rectangle, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
    dev_set_color('blue')
    dev_display(RegionAffineTrans)
    find_shape_model(Image0, ModelID1, -3.14, 3.14, 0.1, 1, 0.5, 'least_squares', 0, 0.9, Row3, Column3, Angle3, Score3)
    vector_angle_to_rigid(Rowref, Columnref, 0, Row3, Column3, Angle3, HomMat2D)
    affine_trans_region(Rectangle, RegionAffineTrans3, HomMat2D, 'nearest_neighbor')
    dev_set_color('red')
    dev_display(RegionAffineTrans3)
endfor

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章