LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【C#】halcon案例-圆测量

admin
2023年2月27日 11:23 本文热度 457

一.要求:

如下图,识别左边大的圆孔:



二.实现算法:
dev_close_window ()
***读取图片
read_image (Image, 'E:01.JPG')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_display (Image)
rgb1_to_gray (Image, GrayImage)
***分割区域
*选取圆所在区域,缩小图像处理范围
gen_circle (ROI_0, 541.5, 141.5, 151.539)
reduce_domain (GrayImage, ROI_0, ImageReduced)
**阈值分割
dev_set_draw ('fill')
threshold (ImageReduced, Regions, 115, 255)
*取Region边界
boundary (Regions, RegionBorder, 'inner')
**膨胀
dilation_circle (RegionBorder, RegionDilation, 2.5)
*在弧形区域进行边缘检测
edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40)
*分割边缘:线和圆
*对检测的边缘进行分割,识别线或者圆'lines_circles',
segment_contours_xld (Edges, ContoursSplit, 'lines_circles', 5, 5, 8)
*统计识别出圆或线的数量
count_obj (ContoursSplit, Number)
stop()
dev_close_window ()
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
dev_display (Image)
dev_set_draw ('margin')
dev_set_color ('red')
dev_update_window ('off')
*储存拟合圆的圆心坐标和半径
ROW:=[]
COL:=[]
Rad:=[]
n:=0
for i := 1 to Number by 1
    *选择轮廓并根据特性确定是否拟合圆:* Attrib = -1 线段 0 椭圆 1圆
    select_obj (ContoursSplit, Objectselected, i)
    get_contour_global_attrib_xld (Objectselected, 'cont_approx', Attrib)
    if (Attrib > 0)
        *逼近结果生成一个圆轮廓
        fit_circle_contour_xld (Objectselected, 'ahuber', -1, 2, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
        *这里会生成大量的拟合圆,通过添加条件,选取自己需要的圆,这里
        *条件为半径,(可以自己注释条件,查看所有拟合圆结果 )
        if(Radius<73 and Radius>70)
        *生成轮廓
            gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, rad(360), 'positive', 1.0)
            *记录圆的圆心坐标和半径信息
            ROW[n]:=Row
            COL[n]:=Column
            Rad[n]:=Radius
            n:=n+1
            dev_display (ContCircle)
        endif
    endif
endfor

该文章在 2023/2/27 11:24:19 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved