Halcon中的模板匹配、定位跟随以及坐标显示

Halcon中的模板匹配、定位跟随以及坐标显示

运行结果

在这里插入图片描述

代码

open_framegrabber ('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1, 'false', 'default', 'cam2', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
grab_image_async (Image, AcqHandle, -1)
dev_get_window (WindowHandle)

*要创建一个矩形,您必须按鼠标左键作为 矩形。
draw_rectangle2 (WindowHandle, Row, Column, Phi, Length1, Length2)
gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)



*创建跟随区域
gen_rectangle2 (Rectangle1, Row, Column, Phi, Length1, Length2)

reduce_domain (Image, Rectangle1, ImageReduced)

*创建模型
create_shape_model (ImageReduced, 'auto', rad(0), rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
get_shape_model_contours (ModelContours, ModelID, 1)



*查找模型
while (true)
    try
        grab_image_async (Image, AcqHandle, -1)
        area_center (Rectangle, Area, Row2, Column2)
        find_shape_model (Image, ModelID,rad(0), rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Score)
        vector_angle_to_rigid (0, 0, 0, Row1, Column1, Angle, HomMat2D)
        affine_trans_contour_xld (ModelContours, ContoursAffineTrans, HomMat2D)
        vector_angle_to_rigid (Row2, Column2, Angle, Row1, Column1, Angle, HomMat2D1)
        affine_trans_region (Rectangle1, RegionAffineTrans, HomMat2D1, 'nearest_neighbor')
        
        *显示
        dev_display (Image)
        dev_display (ContoursAffineTrans)
        dev_set_draw ('margin')
        dev_set_line_width (2)
        dev_set_color ('green')
        dev_display (RegionAffineTrans)
        disp_message (WindowHandle, 'X:'+Row1+ '  '+'Y:'+Column1, 'window',400, 50, 'black', 'true')
    catch (Exception)
        
    endtry
    
endwhile
close_framegrabber (AcqHandle)

新手刚开始学习,一起学习讨论

猜你喜欢

转载自blog.csdn.net/qq_45740345/article/details/130741335