训练匹配模板


1、区分各自硬币

* distinguishing of coins with the help of shape-based matching

dev_close_window ()
dev_open_window (0, 0, 652, 494, 'black', WindowHandle)
dev_update_window ('off')
Names := ['german','italian','greek','spanish']
Models := []

*制作多个模板
for i := 0 to 3 by 1
    read_image (Image, 'coins/20cent_'+Names[i])
    dev_display (Image)

    *训练模板函数(后面有详述)
    train_model (Image, ModelID)

    *将获取的模板ModelID,存于Models 元组中
    Models := [Models,ModelID]
endfor

*依次匹配目标结果
for i := 1 to 13 by 1
    read_image (Image, 'coins/20cent_'+i$'.2'+'.png')

    *搜索匹配函数(后面有详述)
    find_coin (Image, Models, Row, Column, Angle, Score, Model)
    display_model (Image, Model, Row, Column, Angle, Names, WindowHandle)
    stop ()
endfor
* destroy models
for i := 0 to 3 by 1
    clear_shape_model (Models[i])
endfor


2、训练模板函数train_model (Image, ModelID)

函数展开:

*硬币特征区域获取函数(后面有详述)

locate_coin (Image, Coin)
Contrast := 20
HysteresisContrast := [Contrast/2,Contrast+6,10]

*截取特征区域图片,存在ImageReduced中
reduce_domain (Image, Coin, ImageReduced)
* Called during the test phase to see if Contrast is selected correctly
* inspect_shape_model (ImageReduced, ModelImages, ModelRegions, 1, HysteresisContrast)

*从特征区域图片中提取模板,存于ModelID中
create_shape_model (ImageReduced, 'auto', 0, rad(360), 'auto', 'none', 'ignore_local_polarity', HysteresisContrast, 5, ModelID)
return ()


3、硬币特征区域获取函数locate_coin (Image, Coin)

函数展开:

threshold (Image, Region, 70, 255)

*将二值化结果进行连通域划分

connection (Region, ConnectedRegions)

*找到最大面积的连通域
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 0)

*通过形状变换函数获取连通域凸包
shape_trans (SelectedRegions, RegionTrans, 'convex')

*获取特征区域
area_center (RegionTrans, Area, Row, Column)
gen_circle (Coin, Row, Column, 120)
return ()


4、搜索匹配函数find_coin (Image, Models, Row, Column, Angle, Score, Model)

函数展开:

locate_coin (Image, Coin)
area_center (Coin, Area, Row, Column)
gen_circle (Circle, Row, Column, 35)
reduce_domain (Image, Circle, ImageReduced)
find_shape_models (ImageReduced, Models, 0, rad(360), 0.6, 1, 0, 'least_squares', 0, 1, Row, Column, Angle, Score, Model)
return ()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天上人间555

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值