halcon模板匹配、由点生成线应用

halcon模板匹配、由点生成线应用

1、图片链接:https://pan.baidu.com/s/1ZTenkUDgiDIBCYp-xFwV8A
提取码:4wv4
在这里插入图片描述
2、要求:
(1)利用果实和叶子制作模板并且定位(模板必须完整无分支干扰线);
(2)叶子和果实 重心通过仿射变换显示在logo上;
(3)计算叶子与果实重心连线基于模板重心的连线的角度;
3、代码实现:

dev_get_window (WindowHandle)

read_image (Image, './logo/1.jpg')
flag:=1
if(flag=0)
    draw_rectangle1(WindowHandle, Row1, Column1, Row2, Column2)
    gen_rectangle1 (ROI_0, Row1, Column1, Row2, Column2)
    reduce_domain (Image, ROI_0, ImageReduced)
    create_shape_model(ImageReduced, 'auto', 0, rad(360), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
    get_shape_model_contours(ModelContours, ModelID, 1)
    dev_display (Image)
    dev_set_draw('margin')
    write_shape_model(ModelID,'model2.shm')
    write_string(WindowHandle,'模板创建完毕!')
endif


if(flag=1)
    for  i:= 1 to 12 by 1
        read_image (Image1, './logo/'+i+'.jpg')
        read_shape_model('model2.shm', ModelID)
        get_shape_model_contours (ModelContours, ModelID, 1)
        find_shape_model(Image1, ModelID, 0, rad(360), 0.3, 1, 0.5, 'least_squares', 0, 0.1, Row, Column, Angle, Score)
        if(Score>0.4)
            vector_angle_to_rigid (0, 0, 0, Row, Column, Angle, HomMat2D)
            affine_trans_contour_xld (ModelContours, ContoursAffinTrans, HomMat2D)
            gen_cross_contour_xld (Cross, Row, Column, 36, Angle)   
            scale_image (Image1, ImageScaled, 1.78322, -200)
            threshold (ImageScaled, Regions, 240, 255)
            connection (Regions, ConnectedRegions)
            *果实区域
            select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 67970.2, 1e+06)
            reduce_domain (ImageScaled, SelectedRegions, ImageReduced1)
            area_center (SelectedRegions, Area, Row1, Column1)
            gen_cross_contour_xld (Cross1, Row1, Column1, 36, Angle)
            *叶子区域         
            select_shape (ConnectedRegions, SelectedRegions1, ['area','circularity'], 'and', [19553.1,0.05092], [343575,0.5])
            area_center (SelectedRegions1, Area1, Row2, Column2)
            gen_cross_contour_xld (Cross2, Row2, Column2, 36, Angle)
            *果实中心点和叶子中心点的连线
            gen_region_line (RegionLines1, Row2, Column2, Row1, Column1)
            *
            gen_region_line (RegionLines2, Row2, Column2, Row, Column)            
            ********************************    
            dev_display (Image1)
            dev_set_color ('green')
            dev_display (ContoursAffinTrans)
            *模板匹配中心点
            dev_set_color ('green')
            dev_display (Cross)
            *果实区域中心点
            dev_set_color ('red')
            dev_display (Cross1)
            *叶子区域
            dev_set_color ('black')
            dev_display (Cross2)
            *
            dev_set_color ('red')
            dev_display (RegionLines1)
            dev_set_color ('green')
            dev_display (RegionLines2)
            ****
            disp_message (WindowHandle, 'OK', 'window', 12, 12, 'green', 'true')           
        else
            disp_message (WindowHandle, 'NG 模板匹配失败', 'window', 12, 12, 'red', 'true')          
        endif       
        clear_shape_model(ModelID)
        stop ()
    endfor  
endif

4、效果图
在这里插入图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Halcon模板匹配是一种基于Halcon软件的图像处理技术,用于在图像中搜索指定的目标物体,并确定其位置和姿态。模板匹配技术在计算机视觉领域具有广泛的应用,可用于工业自动化、机器人视觉、品质检测等领域。 在Halcon中,我们可以通过创建一个模板对象来完成模板匹配的过程。首先,我们需要准备模板图像,这是指我们希望在待测图像中找到的目标物体的图像。然后,我们可以使用Halcon提供的函数,如create_template,对模板图像进行处理,生成一个模板对象。 接下来,我们将模板对象与待测图像进行匹配。Halcon提供了多种匹配函数,如find_shape_model和find_template,在匹配过程中,Halcon会根据模板的特征,在待测图像中搜索与模板相似的区域,并给出匹配结果,包括物体的位置和姿态信息。 除了基本的模板匹配功能,Halcon还提供了丰富的参数设置和功能选项,以满足不同应用场景的需求。例如,我们可以调整匹配算法的灵敏度,改变匹配结果的阈值,甚至可以进行多尺度匹配或非刚性匹配。 在CSDN社区中,我们可以找到很多与Halcon模板匹配相关的文章和教程。这些资源可以帮助我们深入了解Halcon模板匹配的原理和实现方法,以及解决实际问题时可能遇到的困难。 总之,Halcon模板匹配是一项高效、精确的图像处理技术,可以帮助我们自动化地检测和定位目标物体。通过在CSDN社区中分享和学习,我们可以进一步提升对Halcon模板匹配的理解和应用能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值