一个图像的"骨架"是指图像中央的骨骼部分,是描述图像几何拓扑性质的重要特征之一。
在求一幅图像X的骨骼过程中应满足两个条件:第一,X应该有规律的缩小;第二,在X缩小的过程中,应当使X的连通性质保持不变的

骨架算子介绍
1、skeletion(Region:Skeleton::)
功能:计算区域的骨骼
参数: Region(输入参数):输入区域
Skeleton(输出参数):结果区域
2、junctions_skeleton(Region:EndPoints,Junctions::)
功能:查找骨骼的关结点和端点
参数: Region(输入参数):输入区域 
EndPoints(输出参数):输出端点
Junctions(输出参数):输出关结点
3、split_skeleton_lines(SkeletonRegion::MaxDistance:BeginRow, BeginCol, EndRow, EndCol)
功能:把骨骼分割为多条宽度为一个像素,无分支的直线。如果一条直线段A上的点到另外一条与A端点相连的直线段B的最大距离大于MaxDistance,那么把这个线段A分割为一个独立的直线区域,该直线区域的近似直线段起点保存在元组BeginRow, BeginCol, EndRow和EndCol。
注意:输入区域必须没有分支的直线区域(即骨骼的单支区域)
参数: SkeletonRegion(输入参数):输入直线(宽度为一个像素,无分支的区域)
MaxDistance(输入参数):直线区域上的点到另外一条与其端点相连的直线区域的最大距离
BeginRow(输出参数):输出直线起点行坐标
BeginCol(输出参数):输出直线起点列坐标
EndRow(输出参数):输出直线终点行坐标
EndCol(输出参数):输出直线终点列坐标
4、split_skeleton_region(SkeletonRegion:RegionLines:MaxDistance:)
功能:把骨骼分割为多条宽度为一个像素,无分支的直线。如果一条直线段A上的点到另外一条与A端点相连的直线段B的最大距离大于MaxDistance,那么把这个线段A分割为一个独立的直线区域,并把这个区域作为输出区域。作用于split_skeleton_lines相同,区别在于没有输出近似直线的起始点坐标。
参数: SkeletonRegion(输入参数):输入直线(宽度为一个像素,无分支的区域)
RegionLines(输出参数):分割后的区域
MaxDistance(输入参数):直线区域上的点到另外一条与其端点相连的直线区域的最大距离

5、gen_contours_skeleton_xld(Skeleton:Contours:Length, Mode:)
功能:把骨骼区域转换成XLD轮廓
参数: Skeleton(输入参数):输入骨骼区域
Contours(输出参数):输出结果轮廓
Length(输入参数):一个轮廓的最小点数
Mode(输入参数):轮廓滤波模式

Halcon中用骨架提取算子skeleton计算区域的斜率

  如何计算区域的斜率呢? 
  如果是正规的Region,orientation_region能够基于elliptic_axis计算出区域的方位。但是如果是不正规的Region,请注意,该算子计算的方位很可能和你以为的方位有很大的偏差。 
  此时,更为一般的方法是: 
  (1)skeleton算子能拟合出该区域的骨架。 
  (2)取骨架中最长的线段作为该区域的中轴线。 
  (3)利用line_orientation就能计算出斜率。

骨架提取

骨架提取可以通过选定合适的结构元素B,对X进行连续腐蚀和开运算来求得。

算法步骤:

一、获得原图像的首地址及图像的宽和高,并设置循环标志1

二、用结构元素腐蚀原图像,并保存腐蚀结果

三、设置循环标志为0,如果腐蚀结果中有一个点为255,即原图像尚未被完全腐蚀成空集,则将循环标志设为1.

四、用结构元素对腐蚀后的图像进行开运算(消除小的白色区域),并求取腐蚀运算与开运算的差(得到消除的白色区域)

五、用【四】中求得的结果与之前求得的骨架进行并集运算,以获得本次循环求得的骨架

六、把本次循环中保存的腐蚀结果赋值给原图像

七、重复步骤【2】-【6】,直到将原图像腐蚀成空集为止。

最终求得的骨架就是结果。

Skeleton骨架总结相关推荐

  1. Material UI 4.10 Skeleton 骨架

    Material-UI官方学习资料 它是React组件,实现了谷歌Material Design设计规范.世界上最流行的React界面框架. Material UI 4.10.0 发布了.Materi ...

  2. 虚幻引擎图文笔记:彻底搞懂重定向(Retargeting)之 解释一下UE Skeleton骨架

    本文需要读者有一点骨骼绑定的基础 文章目录 为什么要了解UE Skeleton骨架 UE Skeleton骨架 小结 为什么要了解UE Skeleton骨架 理论上讲我们可以完全忘记UE Skelet ...

  3. 【3D游戏基础】蒙皮骨骼动画与骨架

    效果 目标!画出蒙皮动画的骨架. 视频 https://www.bilibili.com/video/BV1pM411m7Yw PPT https://zfxdvouj61.feishu.cn/fil ...

  4. 057_Skeleton骨架屏

    1. Skeleton骨架屏 1.1. 在需要等待加载内容的位置设置一个骨架屏, 某些场景下比Loading的视觉效果更好. 1.2. Skeleton Attributes 参数 说明 类型 可选值 ...

  5. 【微信技术-微信小程序】------- 骨架屏(加载流)配置(skeleton-config)及属性详解 (第三篇)

    本篇文章是骨架屏(skeleton)配置及属性详解(第三篇) 第一篇文章:[微信技术-微信小程序]-------骨架屏(加载流) 简单入门(第一篇) 第二篇文章:[微信技术-微信小程序]------- ...

  6. 步步提高网站体验系列之——骨架屏

    前言 最近周末有点时间想着把博客网站再折腾一下,上点流行的技术,提高一下网站交互体验,准备从以下几点入手,也算立个flag,提醒自己不要偷懒: 骨架屏 PWA (Progressive Web App ...

  7. 用C/C++扩展你的PHP

    简 介 PHP取得成功的一个主要原因之一是她拥有大量的可用扩展.web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到.PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内 ...

  8. Java RMI远程方法调用详解

    Java RMI远程方法调用详解     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51992182 一.Java R ...

  9. ElementUI组件库

    官网:https://element.eleme.cn/#/zh-CN/component/installation npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具 ...

  10. 游戏程序中的骨骼插件

    如有转载,请详细标明原文作者,以示尊重! 作者:潘李亮 转自:http://www.cppblog.com/lai3d/archive/2009/07/11/89768.html 游戏程序中的骨骼插件 ...

最新文章

  1. 基于Python的自动特征工程——教你如何自动创建机器学习特征
  2. 联想笔记本不能无线上网
  3. IIS启动时出现0x8ffe2740的错误
  4. Python小技巧——快速给大量文件命名
  5. 27.怎样在Swift中声明typedef?
  6. Javascript的调试利器:Firebug使用详解
  7. centos7 rabbitmq安装/配置
  8. 存储限制_明年6月份开始,谷歌相册将终止免费无限存储服务
  9. diff算法_Virtual Dom和Diff算法
  10. flex中list或Combox中的子项上移下移操作
  11. N!阶层末尾有多少0
  12. 机架式服务器可以安装win7系统,Win7 32位系统怎么安装电音
  13. 学习笔记10--自动驾驶汽车软件架构
  14. 基于脉动阵列实现矩阵卷积(FPGA)
  15. php 测试网站打开速度,JS如何测试目标网站的打开响应速度
  16. 安装opencv时出现PEP517问题解决
  17. 谷底c语言,谷底线的基本画法是什么?
  18. 网易云音乐params和encSecKey参数生成代码
  19. SEO每天都是动态变化的,你要关注什么?
  20. 【LeetCode刷题】重叠区间问题

热门文章

  1. 扫雷php,扫雷php
  2. Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
  3. 以天下之力成天下之事,菜鸟成物流抗疫主力军
  4. 关于MP4V2 封装h265 接口调用问题
  5. 有赞百亿级日志系统架构设计
  6. 堆栈c语言 矩形填色,堆栈涂色官方版下载|堆栈涂色安卓版v0.1下载 - 一游网手机游戏...
  7. HarmonyOS无法添加outlook日历(报错该账户名称已被使用)
  8. 关于SEL的一些总结
  9. 一碗泡面背后的努力,康师傅连续十次斩获“食安管理十强企业”
  10. Python刷博客简易版