read_image (Image1, 'D:/Picture/1.bmp')
dev_close_window ()
dev_open_window_fit_image (Image1, 0, 0, -1, -1, WindowHandle)
dev_display (Image1)
*创建一个模板匹配,并得到初始模板行、列、角度
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
reduce_domain (Image1, Rectangle, ImageReduced)
create_shape_model (ImageReduced, 'auto', rad(0), rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
find_shape_model (ImageReduced, ModelID, rad(0), rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.5, Row, Column, Angle, Score)
dev_display (Image1)
dev_display_shape_matching_results (ModelID, 'red', Row, Column, Angle, 1, 1, 0)
stop()
*创建带角度的矩形ROI,得到行、列坐标
draw_rectangle2 (WindowHandle, Row3, Column3, Phi, Length1, Length2)
gen_rectangle2 (Rectangle1, Row3, Column3, Phi, Length1, Length2)
stop()
for i := 0 to rad(360) by rad(10)
*生成旋转图像,产生识别、ROI跟随旋转效果
vector_angle_to_rigid (575, 558, 0, 575, 558, i, HomMat2D)
affine_trans_image (Image1, ImageAffineTrans, HomMat2D, 'constant', 'false')
*找模板
find_shape_model (ImageAffineTrans, ModelID, rad(0), rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.5, Row11, Column11, Angle11, Score)
*得到相对于初始模板行、列坐标的变换矩阵
vector_angle_to_rigid (Row, Column, Angle, Row11, Column11, Angle11, HomMat2D1)
*利用变换矩阵变换ROI行、列坐标,得到行动ROI行、列坐标
affine_trans_pixel (HomMat2D1, Row3, Column3, RowTrans, ColTrans)
*利用行动行、列坐标生成ROI
gen_rectangle2 (Rectangle2, RowTrans, ColTrans, Angle11+Phi, Length1, Length2)
dev_display (ImageAffineTrans)
dev_display (Rectangle2)
wait_seconds (1)
*stop()
endfor |