当前位置: 首页 > news >正文

【Halcon知识】外轮廓线的算子

一、提要

        这里介绍,如何将图像的对象返回成图形的几何元素问题。Halcon中对应的算子很多,这里将从最重要的开始介绍,然后逐一揭示其它算子的用途。好了,就开始吧!

二、算子001:将轮廓线分割成线段和园弧

2.1  segment_contours_xld算子

        segment_contours_xld:该函数将轮廓线通过分段,变成圆弧、线段的集合,通过该集合拟合成外轮廓。

1)函数形式

segment_contours_xld(Contours : ContoursSplit : Mode, SmoothCont, MaxLineDist1, MaxLineDist2 : )

2)参数解析 

  • Contours:被处理外轮廓
  • ContoursSplit:输出曲线集合
  • mode:规定曲线的形式【 'lines' | 'lines_circles' | 'lines_ellipses'】
  • SmoothCont:定义光滑处理的滤波点数;

3)详细解析

  • Mode:

        segment_contours_xld 如果 Mode='lines' 则将输入轮廓 Contours 分割成线,如果 Mode='lines_circles' 则分割成线和圆弧,如果 Mode='lines_ellipses' 则分割成线和椭圆弧。分割的轮廓在 ContoursSplit 中返回。

        关于输出轮廓是表示直线还是圆弧或椭圆弧的信息是通过全局轮廓属性“cont_approx”完成的(参见 get_contour_global_attrib_xld)。如果'cont_approx'=-1,则轮廓最好由线段近似,如果'cont_approx'=0,则由椭圆弧近似,如果'cont_approx'=1,则由圆弧近似。

  • SmoothCont

        segment_contours_xld 首先通过多边形逼近输入轮廓。这样,轮廓在弯曲区域中被过度分割。在此之后,如果轮廓可以通过弧更好地近似,则相邻的线段分别由圆弧或椭圆弧代替。如果 SmoothCont 设置为 > 0 的值,则首先对输入轮廓进行平滑处理(请参阅 smooth_contours_xld)。这对于防止多边形近似中的非常短的段以及实现与圆形或椭圆弧的更稳健拟合是必要的,因为平滑抑制了轮廓上的异常值。

  • MaxLineDist1 和 MaxLineDist2

        因为逼近是分两布完成的,首先是多变形逼近,然后是圆弧逼近。MaxLineDist1是指在多边形逼近的时候,原轮廓和拟合线的最大距离。

        初始多边形近似是通过使用最大距离为 MaxLineDist1 的 Ramer 算法(参见 gen_polygons_xld)完成的。在此之后,圆弧或椭圆弧被拟合到相邻的线段中。如果生成的圆弧到轮廓的最大距离小于两条线段的最大距离,则将两条线段替换为圆弧。重复此过程,直到不再发生更改。

        在此之后,仍然由线段近似的轮廓部分再次使用具有最大距离 MaxLineDist2 的多边形近似进行分割,并且在可能的情况下将新创建的线段合并为圆弧或椭圆弧。显然,仅当 MaxLineDist2 < MaxLineDist1 时才会更改输出。这种两步法比使用 MaxLineDist2 的一步法更有效,因为第一步生成的线段较少,因此必须较少执行圆形或椭圆拟合。因此,可以更有效地找到可以用长弧近似的部分输入轮廓。第二步,找到可以用短弧近似的部分输入轮廓,并细化长弧的末端部分。

        生成的轮廓至少有 3 个像素长,并且包含输入轮廓的至少 6 个连续点。长度小于 3 像素或轮廓点少于 6 个的所有输入轮廓都将被复制到输出轮廓而不进行修改。

2.2 轮廓线性质算子get_contour_global_attrib_xld

get_contour_global_attrib_xld 返回一个 XLD 轮廓的全局属性值.

1)函数形式:

get_contour_global_attrib_xld(Contour : : Name : Attrib)

2)参数说明

  • Contour:输入的曲线集
  • Name:
  • Attrib

        get_contour_global_attrib_xld 返回Attrib中XLD轮廓Contour的全局属性Name的值。全局属性是为每个轮廓定义的附加值,例如,一个轮廓的回归线的法向量('regr_norm_row'和'regr_norm_col')。定义此类属性的运算符包含对已定义值的名称和语义的描述。 query_contour_global_attribs_xld 可用于查询为特定轮廓定义了哪些属性。

相关文章:

  • 能安装Chrome扩展和油猴脚本的手机浏览器
  • 使用Android studio开发一个数独游戏APP 系列第一讲
  • 如何在深度学习中使用自动混合精度训练
  • Linux命令lsscsi详解
  • asp.net webapi 结合Autofac实现程序集动态注入(framework版本)
  • 如何选择合适的进销存管理软件?这几点你需要知道
  • 今日踩坑Maven:omitted for duplicate
  • 时至今日“性能优化”为何依旧成为大厂高工必修
  • 使用谷歌浏览器 devtools 调试node项目
  • 猿创征文 | H5 API之web存储、拖拽事件以及跨文档通信
  • 【数据结构与算法】第六篇:红黑树
  • [Power Query] 分组依据
  • Scala系列从入门到精通(三)
  • 项目框架:登录跳转页面
  • 【毕业设计】视频多目标跟踪系统 - 深度学习 机器视觉
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • echarts花样作死的坑
  • ECMAScript6(0):ES6简明参考手册
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SQLServer之索引简介
  • Web Storage相关
  • 两列自适应布局方案整理
  • 聊聊flink的BlobWriter
  • 普通函数和构造函数的区别
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端临床手札——文件上传
  • 如何实现 font-size 的响应式
  • 深度学习入门:10门免费线上课程推荐
  • 深度学习在携程攻略社区的应用
  • 数据可视化之 Sankey 桑基图的实现
  • Nginx实现动静分离
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​如何在iOS手机上查看应用日志
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (3)选择元素——(17)练习(Exercises)
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (接口封装)
  • (全注解开发)学习Spring-MVC的第三天
  • (四)c52学习之旅-流水LED灯
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)树状数组
  • .bashrc在哪里,alias妙用
  • .net打印*三角形
  • @JSONField或@JsonProperty注解使用
  • @PreAuthorize注解
  • [ NOI 2001 ] 食物链
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [2018-01-08] Python强化周的第一天
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [bzoj 3124][sdoi 2013 省选] 直径