本帖最后由 FF5 于 2023-2-25 16:57 编辑
总体思路
1---获取匹配图像模板
2---创建匹配模板
3---连续读取图像进行匹配
测试图片在附件里面
dev_close_window ()
*读取模板图像
dev_clear_window ()
read_image (MImage, 'E:/资料/模板图像.jpg')
get_image_size (MImage, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (MImage)
*分割出模板
mean_image (MImage, ImageMean, 5, 5)
sobel_amp (ImageMean, EdgeAmplitude, 'sum_abs', 3)
threshold (EdgeAmplitude, Regions, 30, 255)
closing_circle (Regions, RegionClosing, 3.5)
opening_circle (RegionClosing, RegionOpening, 3.5)
connection (RegionOpening, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
fill_up (SelectedRegions, RegionFillUp)
reduce_domain (MImage, RegionFillUp, ImageReduced)
*创建形状模板
create_scaled_shape_model (ImageReduced, 4, rad(360), rad(360), 'auto', 0.3, 3, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
*开始匹配
for I := 1 to 10 by 1
read_image (Image, 'E:/资料/'+ I +'.jpg')
find_shape_model (Image, ModelID, rad(-360), rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.5, Row, Column, Angle, Score)
dev_display_shape_matching_results (ModelID, 'green', Row, Column, Angle, 1, 1, 0)
wait_seconds (0.5)
endfor
clear_shape_model (ModelID)
stop ()
|