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

Halcon闭运算closing

Halcon闭运算

文章目录

  • Halcon闭运算

闭运算的计算步骤,为先膨胀,后腐蚀。这两步操作能将看起来很接近的元素,如区域内部的空洞或外部孤立的点连接成一体,区域的外观和面积也不会有明显的改变。通俗地说,就是类似于“填空隙”的效果。与单独的膨胀操作不同的是,闭运算在填空隙的同时,不会使图像边缘轮廓加粗。
图(a)中的灰色部分为经阀值处理后提取的区域,三角形区域有小的空洞,四边形区域有部分缺失。经过closing 算子处理后,小的空洞和缺失的部分得到了填充,形状变得完整。图(b)是闭运算后的效果。
在这里插入图片描述
图中的闭运算处理代码如下:

read_image (Image,'data/shapes')
*将图像进行通道分解,分别转换为3个通道的RGB图像
decompose3 (Image, Red, Green, Blue)
*使用颜色转换将 RGB的3个通道图像转化为HSV通道图像
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')
*对饱和度通道的图像进行阈值处理
threshold (Saturation, Regions,180,255)
*创建圆形结构元素,用于闭运算
gen_circle(StructElement,10,10,10)
*对图像中较亮的区域进行闭运算处理,填补各自轮廓中的小空隙
closing(Regions,StructElement,Large)
dev_clear_window ()
dev_display (Large)

之所以选择对饱和度通道的图像进行阈值处理,是因为这个通道的图像符合暗背景、亮目标。
经过闭运算后,区域内的小缝隙被填补,选区变得封闭。
上文中使用了closing算子进行闭运算处理。该算子的原型如下:

closing(Region, StructElement : RegionClosing ::)

其中各参数的含义如下。
(1)参数1:Region 为输入的图像区域。
(2)参数2:StructElement 为输入的结构元素,如圆形、矩形等。
(3)参数3:RegionClosing 为输出的经闭运算处理后的区域。
闭运算也是一种扩张的操作。经闭运算处理后,图像上的大面积的区域依然能基本维持原状,而面积小的区域之间的空隙和区域内部的小孔将被封闭。
该算子本质虽然是扩张,但并不会将不同的区域合并,区域之间仍保持相对独立。
除了上文中的closing算子以外,Halcon中与闭运算有关的算子如下。
(1) closing_circle :使用圆形结构元素对区域进行闭运算处理。
(2) closing_golay:使用格雷字母表中的元素对区域进行闭运算处理。
(3)closing_rectangle1:使用矩形结构元素对区域进行闭运算处理。
总体来说,开运算适合去除图上的杂点和噪声等非关键的元素。而闭运算则相反,它是用于填
补区域中的小空隙。开运算和闭运算都不会改变主体部分的形态。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • c语言内嵌汇编知识点记录
  • 牛客周赛 Round 26 解题报告 | 珂学家 | 0-1 BFS + 状态机DP
  • 《Linux详解:深入探讨计算机基础》
  • 2023.12.30力扣每日一题——一周中的第几天
  • 六、typescript泛型使用
  • Django 后台与便签
  • 苹果电脑Dock栏优化软件 mac功能亮点
  • 基于MATLAB编程的BP神经网络土地分类,bp神经网络详细原理
  • 2023年十篇具有影响力的人工智能研究论文
  • HarmonyOS4.0系统性深入开发07创建一个ArkTS卡片
  • SQL常见面试题
  • C++:继承(这一篇就够了)
  • css视觉格式化模型
  • JavaScript 中常用事件
  • shell打印粉色小心心、颜文字心心
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【剑指offer】让抽象问题具体化
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • C++11: atomic 头文件
  • CODING 缺陷管理功能正式开始公测
  • flutter的key在widget list的作用以及必要性
  • HTML5新特性总结
  • Java反射-动态类加载和重新加载
  • Java面向对象及其三大特征
  • JS数组方法汇总
  • js数组之filter
  • magento2项目上线注意事项
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • node 版本过低
  • Redis 懒删除(lazy free)简史
  • session共享问题解决方案
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • vue2.0项目引入element-ui
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 第2章 网络文档
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 驱动程序原理
  • 为什么要用IPython/Jupyter?
  • 学习ES6 变量的解构赋值
  • 《天龙八部3D》Unity技术方案揭秘
  • zabbix3.2监控linux磁盘IO
  • 通过调用文摘列表API获取文摘
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #《AI中文版》V3 第 1 章 概述
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (10)STL算法之搜索(二) 二分查找
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (solr系列:一)使用tomcat部署solr服务
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (篇九)MySQL常用内置函数
  • (删)Java线程同步实现一:synchronzied和wait()/notify()