halcon测量圆同心度

处理要求

测量圆环同心度
在这里插入图片描述

处理源码

read_image (Image, 'C:/Users/22967/Desktop/图像Barrel 20201024/201024 手机行业 摄像头检测/Barrel 背光/Pic_2020_10_24_095951_blockId#20579.bmp')
dev_close_window ()
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)*背光,测量外轮廓相对圆心差别
* Image Acquisition 01: Code generated by Image Acquisition 01
list_files ('C:/Users/22967/Desktop/图像Barrel 20201024/201024 手机行业 摄像头检测/Barrel 背光', ['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])
    
    binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)
    connection (Region, ConnectedRegions)
    select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)
    smallest_circle (SelectedRegions, Row, Column, Radius)
    
    fill_up (SelectedRegions, RegionFillUp)
    difference (RegionFillUp, SelectedRegions, RegionDifference)
    smallest_circle (RegionDifference, Row1, Column1, Radius1)
    
    FindShapeModelBaseMetro (Image, Contour, Row, Column, Radius, ParameterUnder)
    
    FindShapeModelBaseMetro (Image, Contour, Row1, Column1, Radius1, ParameterUnder1)
    
    disUnderX[Index]:=ParameterUnder[1]-ParameterUnder1[1]
    disUnderY[Index]:=ParameterUnder[0]-ParameterUnder1[0]
    
    disUnder[Index]:=pow( pow(disUnderX[Index],2)+pow(disUnderY[Index],2),0.5)
    
    dev_display (Image)
    dev_set_draw ('margin')
    disp_circle (WindowHandle, Row1, Column1, Radius1)
    disp_circle (WindowHandle, Row, Column, Radius)     
    *stop()
    endfor
    tuple_deviation (disUnder, DeviationUnder)
    stop ()

自定义函数FindShapeModelBaseMetro源码

create_metrology_model (MetrologyHandle)
    add_metrology_object_circle_measure (MetrologyHandle, Row, Column, Radius, Radius/10, Radius/60, 1, 4,\
     ['measure_distance','min_score'], [Radius/30,0.2], Index1)
    apply_metrology_model (Image, MetrologyHandle)
    gen_empty_obj (Contours)
    get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row1, Column1)
    get_metrology_object_result (MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)
    get_metrology_object_result_contour (Contour, MetrologyHandle, 'all', 'all', 1.5)
    clear_metrology_model (MetrologyHandle)
    return ()

处理结果

在这里插入图片描述

转载自:

https://blog.csdn.net/cashmood/article/details/109637689


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864