HALCON从入门到入门-提取图像中的线条

测试效果

算法简介

Skeleton算法,也称为骨架化算法,主要用于图像处理和计算机视觉领域,其目标是提取图像中物体的骨架。以下是关于Skeleton算法的主要步骤和特点的详细解释:

  1. 算法原理:
    • Skeleton算法基于形态学操作和图像处理技术,通过一系列变换和运算,最终得到物体的骨架。骨架是物体边界的中轴线,能够描述物体的形状、结构和拓扑关系。
    • 算法的核心思想是通过迭代腐蚀边界来逐步细化物体,同时保留满足一定条件的点,以确保在燃烧结束后剩下的最后一像素宽的图像即为图像的骨架。
  1. 主要步骤:
    • 图像预处理:对原始图像进行去噪、平滑和二值化等操作,以便提取物体边界。
    • 边界提取:利用边缘检测算法(如Canny算法)提取物体的边界。
    • 边界细化:对提取出的边界进行细化处理,去除不必要的像素点,得到物体的最细边界。
    • 骨架提取:根据细化后的边界,运用骨架化算法提取物体的骨架。
    • 骨架修正与优化:对提取出的骨架进行修正,消除噪声和孤立点,并通过优化算法使骨架更符合物体的形状和结构。
    • 骨架显示:将提取出的骨架进行可视化显示,以便观察和分析。
  1. 算法特点:
    • 并行性:Skeleton算法可以并行实现,提高计算效率。
    • 抽象性:算法骨架作为高层次的并行程序设计语言构件,隐藏了运行环境内部的实现细节,从而简化了并行程序的开发。
    • 优化性:在特定的体系结构上,算法骨架能够充分利用优化技术,有效提高并行程序的性能。
    • 可重用性和可移植性:由于skeleton的实现细节对用户透明,提高了其可重用性和可移植性。
  1. 算法实现:
    • Skeleton算法的实现涉及到多个条件和规则,如像素点是否要被删除的规则,这些规则可能基于像素点的邻域状态、非零值像素的数量等。
    • 具体实现中,可以采用数据结构(如Descriptor)来描述像素点的属性,包括邻域状态、模式计数、非零邻居数量、删除状态等。
    • 算法的实现还包括对迭代过程中要删除的点位的记录和处理,以及迭代完成后对剩余点位的重新初始化等步骤。
  1. 应用领域:
    • Skeleton算法在图像处理和计算机视觉领域有广泛的应用,包括物体识别和分类、道路检测和跟踪、医学图像分析、模式识别和机器学习、动画和游戏开发等。

通过上述步骤和特点的介绍,可以看出Skeleton算法是一个复杂但功能强大的图像处理算法,对于提取图像中物体的骨架具有重要的应用价值。

代码解析

首先读取一张图片

read_image (Bk45, 'bk45')

执行bandpass滤波

bandpass_image (Bk45, Lines, 'lines')

对上述图像进行二值化

threshold (Lines, Region, 128, 255)

使用skeleton 算子提取区域骨干

skeleton (Region, Skeleton)

基于上述区域生成XLD线条(也是基于骨干生成)

gen_contours_skeleton_xld (Skeleton, Contours, 5, 'filter')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黄晓魚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值