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)
新手刚开始学习,一起学习讨论