设置首页收藏本站
开启左侧

halcon轮廓提取

[复制链接]
Zcy1023 发表于 2026-4-28 14:17:01 | 显示全部楼层 |阅读模式
1777356320784.png

想完整提取到内部和外部类似圆形的轮廓,使用segment_contours_xld无法达到理想效果,请求大佬指点一下。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
大凡光学,专注标定板提供
halcon2016 发表于 2026-4-28 19:35:05 | 显示全部楼层
本帖最后由 halcon2016 于 2026-4-28 19:36 编辑

2026-04-28_193532.png

read_image (Image141427wztoyjox01nmtu3x, 'C:/Users/Administrator/Desktop/141427wztoyjox01nmtu3x.png')
binary_threshold (Image141427wztoyjox01nmtu3x, Region, 'max_separability', 'dark', UsedThreshold)
erosion_circle (Region, RegionErosion, 3.5)
dilation_circle (Region, RegionDilation, 3.5)
difference (RegionDilation, RegionErosion, RegionDifference)
reduce_domain (Image141427wztoyjox01nmtu3x, RegionDifference, ImageReduced)
edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40)
segment_contours_xld (Edges, ContoursSplit, 'lines_ellipses', 7, 30, 6)
select_contours_xld (ContoursSplit, SelectedContours, 'contour_length', 300, 200000, -0.5, 0.5)

*方法2
closing_circle (Region, RegionClosing, 83.5)
dilation_circle (RegionClosing, RegionDilation1, 3.5)
erosion_circle (RegionClosing, RegionErosion1, 3.5)
difference (RegionDilation1, RegionErosion1, RegionDifference1)
reduce_domain (Image141427wztoyjox01nmtu3x, RegionDifference1, ImageReduced1)
edges_sub_pix (ImageReduced1, Edges1, 'canny', 1, 20, 40)

点评

🐂  发表于 2026-4-29 12:15
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复 支持 2 反对 0

使用道具 举报

 楼主| Zcy1023 发表于 2026-4-30 10:14:21 | 显示全部楼层
halcon2016 发表于 2026-4-28 19:35
read_image (Image141427wztoyjox01nmtu3x, 'C:/Users/Administrator/Desktop/141427wztoyjox01nmtu3x.pn ...

你好,大佬,我用你的方法试了一下,用我帖子的截图可以达到效果,但用原图就不行了,我认为可能是segment_contours_xld参数设置问题,你看能不能用原图测试一下,麻烦了。我把原图链接放下面
通过网盘分享的文件:C形
链接: https://pan.baidu.com/s/1vMhCo6xeMhz6tOTRg5nj_g?pwd=ndpm 提取码: ndpm
--来自百度网盘超级会员v6的分享
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
halcon2016 发表于 2026-5-1 11:41:36 | 显示全部楼层
list_files ('C:/Users/Administrator/Desktop/C形', ['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])
    auto_threshold (Image, Regions, 8)
    connection (Regions, ConnectedRegions)
    select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 850000, 990000)
    shape_trans (SelectedRegions, RegionTrans, 'convex')
    difference (RegionTrans, SelectedRegions, RegionDifference1)
    opening_circle (RegionDifference1, RegionOpening, 333.5)
    difference (RegionTrans, RegionOpening, RegionDifference2)
    boundary (RegionDifference2, RegionBorder, 'inner')
    dilation_circle (RegionBorder, RegionDilation1, 9.5)
    reduce_domain (Image, RegionDilation1, ImageReduced)
    edges_sub_pix (ImageReduced, Edges, 'canny', 2, 20, 40)
    union_adjacent_contours_xld (Edges, UnionContours, 30, 1, 'attr_keep')
    dev_display (Image)
    dev_display (UnionContours)
    stop()
endfor


2026-05-01_113941.png
2026-05-01_113952.png
2026-05-01_114009.png
2026-05-01_114022.png
2026-05-01_114036.png
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复 支持 1 反对 0

使用道具 举报

 楼主| Zcy1023 发表于 2026-5-6 11:30:32 | 显示全部楼层
halcon2016 发表于 2026-5-1 11:41
list_files ('C:/Users/Administrator/Desktop/C形', ['files','follow_links'], ImageFiles)
tuple_regexp ...

谢谢大佬指点,对我很有帮助。大佬方便加个联系方式嘛,遇到别的问题方便向您请教。您那边通过我的好友申请 私发就行。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Non-Stop_ 发表于 2026-5-8 09:05:40 | 显示全部楼层
c++和opencv实现了直线圆弧分割算法。上述提供的图片需要提前blob提取目标区域在进行边缘提取进行分割
3.jpg
4.jpg
5.jpg
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| Zcy1023 发表于 2026-5-9 15:55:02 | 显示全部楼层
Non-Stop_ 发表于 2026-5-8 09:05
c++和opencv实现了直线圆弧分割算法。上述提供的图片需要提前blob提取目标区域在进行边缘提取进行分割 ...

谢谢大佬指点
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表