Skeleton骨架总结
一个图像的"骨架"是指图像中央的骨骼部分,是描述图像几何拓扑性质的重要特征之一。
在求一幅图像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骨架总结相关推荐
- Material UI 4.10 Skeleton 骨架
Material-UI官方学习资料 它是React组件,实现了谷歌Material Design设计规范.世界上最流行的React界面框架. Material UI 4.10.0 发布了.Materi ...
- 虚幻引擎图文笔记:彻底搞懂重定向(Retargeting)之 解释一下UE Skeleton骨架
本文需要读者有一点骨骼绑定的基础 文章目录 为什么要了解UE Skeleton骨架 UE Skeleton骨架 小结 为什么要了解UE Skeleton骨架 理论上讲我们可以完全忘记UE Skelet ...
- 【3D游戏基础】蒙皮骨骼动画与骨架
效果 目标!画出蒙皮动画的骨架. 视频 https://www.bilibili.com/video/BV1pM411m7Yw PPT https://zfxdvouj61.feishu.cn/fil ...
- 057_Skeleton骨架屏
1. Skeleton骨架屏 1.1. 在需要等待加载内容的位置设置一个骨架屏, 某些场景下比Loading的视觉效果更好. 1.2. Skeleton Attributes 参数 说明 类型 可选值 ...
- 【微信技术-微信小程序】------- 骨架屏(加载流)配置(skeleton-config)及属性详解 (第三篇)
本篇文章是骨架屏(skeleton)配置及属性详解(第三篇) 第一篇文章:[微信技术-微信小程序]-------骨架屏(加载流) 简单入门(第一篇) 第二篇文章:[微信技术-微信小程序]------- ...
- 步步提高网站体验系列之——骨架屏
前言 最近周末有点时间想着把博客网站再折腾一下,上点流行的技术,提高一下网站交互体验,准备从以下几点入手,也算立个flag,提醒自己不要偷懒: 骨架屏 PWA (Progressive Web App ...
- 用C/C++扩展你的PHP
简 介 PHP取得成功的一个主要原因之一是她拥有大量的可用扩展.web开发者无论有何种需求,这种需求最有可能在PHP发行包里找到.PHP发行包包括支持各种数据库,图形文件格式,压缩,XML技术扩展在内 ...
- Java RMI远程方法调用详解
Java RMI远程方法调用详解 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51992182 一.Java R ...
- ElementUI组件库
官网:https://element.eleme.cn/#/zh-CN/component/installation npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具 ...
- 游戏程序中的骨骼插件
如有转载,请详细标明原文作者,以示尊重! 作者:潘李亮 转自:http://www.cppblog.com/lai3d/archive/2009/07/11/89768.html 游戏程序中的骨骼插件 ...
最新文章
- 基于Python的自动特征工程——教你如何自动创建机器学习特征
- 联想笔记本不能无线上网
- IIS启动时出现0x8ffe2740的错误
- Python小技巧——快速给大量文件命名
- 27.怎样在Swift中声明typedef?
- Javascript的调试利器:Firebug使用详解
- centos7 rabbitmq安装/配置
- 存储限制_明年6月份开始,谷歌相册将终止免费无限存储服务
- diff算法_Virtual Dom和Diff算法
- flex中list或Combox中的子项上移下移操作
- N!阶层末尾有多少0
- 机架式服务器可以安装win7系统,Win7 32位系统怎么安装电音
- 学习笔记10--自动驾驶汽车软件架构
- 基于脉动阵列实现矩阵卷积(FPGA)
- php 测试网站打开速度,JS如何测试目标网站的打开响应速度
- 安装opencv时出现PEP517问题解决
- 谷底c语言,谷底线的基本画法是什么?
- 网易云音乐params和encSecKey参数生成代码
- SEO每天都是动态变化的,你要关注什么?
- 【LeetCode刷题】重叠区间问题
热门文章
- 扫雷php,扫雷php
- Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
- 以天下之力成天下之事,菜鸟成物流抗疫主力军
- 关于MP4V2 封装h265 接口调用问题
- 有赞百亿级日志系统架构设计
- 堆栈c语言 矩形填色,堆栈涂色官方版下载|堆栈涂色安卓版v0.1下载 - 一游网手机游戏...
- HarmonyOS无法添加outlook日历(报错该账户名称已被使用)
- 关于SEL的一些总结
- 一碗泡面背后的努力,康师傅连续十次斩获“食安管理十强企业”
- Python刷博客简易版