*******图像不变,平移ROI
dev_set_draw('margin')
**读取图像(模板图像)
read_image(Image,'D:/halcon学习/image/模组/模组/1.bmp')
**产生检测ROI
gen_rectangle1(Rectangle,848,237,1001,941)
**产生模板区域
gen_circle(Circle,544,564,241)
**减少定义域
reduce_domain(Image, Circle, ImageReduced)
**创建模板。平移变换,把角度设置为0
create_shape_model (ImageReduced, 'auto', 0, 0, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
**获取模板轮廓
get_shape_model_contours(ModelContours, ModelID, 1)
****读取另外一副图像(实时图像)
read_image(Image2,'D:/halcon学习/image/模组/模组/2.bmp')
****几何定位
find_shape_model (Image2, ModelID, 0, 0, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
***判断是否定位到。如果定位到,进入if
if(|Score|>0)
**显示模板轮廓
dev_display_shape_matching_results(ModelID, 'red', Row, Column, Angle, 1, 1, 0)
***求模板区域中心
area_center(Circle, Area, Row2, Column2)
***计算仿射变换:从模板图像变换到实时图像。平移变换,目的角度设为0
vector_angle_to_rigid(Row2,Column2,0,Row,Column,Angle,HomMat2D)
**对齐检测ROI到实时图像
affine_trans_region(Rectangle,RegionAffineTrans, HomMat2D, 'false')
***显示图像
dev_display(Image2)
***计算仿射变换:从实时图像变换到模板图像
vector_angle_to_rigid(Row,Column,0,Row2,Column2,0,HomMat2D)
**把实时图像变换到模板图像
affine_trans_image(Image2,ImageAffinTrans1,HomMat2D, 'constant', 'false')
*****显示检测ROI
dev_display(Rectangle)
endif