【halcon每日一练】

饮料瓶模板匹配

基于形状模板匹配定位
模板图片: 在这里插入图片描述 手机自拍的饮料瓶盖子

halcon代码

// An highlighted block
read_image (inImge, 'F:/halcon实例/网上寻找示例/塑料瓶盖模板匹配/模板匹配原图/IMG_20220323_111919.jpg')
get_image_size (inImge, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width/8, Height/8, 'black', WindowHandle)
dev_display (inImge)

rgb1_to_gray(inImge, GrayImage)
gen_rectangle1 (Rectangle, 2012, 1285, 2765, 1966)
reduce_domain (GrayImage, Rectangle, ImageReduced)


*step1创建模板  tips:注意创建模板时一定是图像,且是经过ROI框选后感兴趣的图像
create_shape_model (ImageReduced, 'auto', -3.14, 3.14, 'auto', 'auto', 'ignore_global_polarity', 'auto', 'auto', ModelID)
*UI交互让使用者看到模板轮廓
get_shape_model_contours (ModelContours, ModelID, 1)

*测试图例
list_files ('F:/halcon实例/网上寻找示例/塑料瓶盖模板匹配/模板匹配原图', ['files','follow_links'], ImageFiles)
tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
for Index := 0 to |ImageFiles| - 1 by 1
    read_image (Image, ImageFiles[Index])
    dev_clear_window ()
    dev_display (Image)
    rgb1_to_gray(Image, GrayImageInspect)
   
*step2寻找模板
    
    find_shape_model (GrayImageInspect, ModelID, -3.14, 3.14, 0.5, 1, 0.5, 'least_squares', 4, 0.9, Row, Column, Angle, Score)
    
    if(|Score|>0.8)
        vector_angle_to_rigid (0, 0, 0, Row, Column, Angle, HomMat2D)
        affine_trans_contour_xld (ModelContours, ContoursAffineTrans, HomMat2D)  
        dev_clear_window ()
        dev_open_window (0, 0, Width/8, Height/8, 'black', WindowHandle1)
        dev_display (Image)
        dev_set_color ('green')
        
        dev_display (ContoursAffineTrans)
        set_display_font (WindowHandle1, 24, 'mono', 'true', 'false')
        set_tposition (WindowHandle1, 0, 0)
        write_string (WindowHandle1, '寻找到相似模板')
        new_line (WindowHandle1)
        write_string (WindowHandle1, '模板位置:Row:'+Row+'   '+'Column:'+Column)
        
    else
        dev_clear_window ()
        dev_open_window (0, 0, Width/8, Height/8, 'black', WindowHandle1)
        dev_display (Image)
        dev_set_color ('red')
        set_display_font (WindowHandle1, 24, 'mono', 'true', 'false')
        set_tposition (WindowHandle1, 0, 0)
        write_string (WindowHandle1, '模板匹配失败')
        
        continue
    endif
   stop()
endfor

clear_shape_model (ModelID)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2694b9a3a27542aaac186105667d52c9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rWq6L-55aSp5ravLeaZqOabpg==,size_12,color_FFFFFF,t_70,g_se,x_16#pic_center)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

火星wen

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

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

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

打赏作者

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

抵扣说明:

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

余额充值