HALCON 算子 之 形态学操作算子

文章目录

  • 什么是形态学操作?
  • 为什么要形态学操作?
  • 怎么形态学操作?
    • 腐蚀 —— Erosion
      • erosion1
      • erosion_circle:
      • erosion_rectangle1:
    • 膨胀 —— Dilation
      • dilation1
      • dilation_circle
      • dilation_rectangle1
    • 打开 —— Opening
      • opening
      • opening_circle
      • opening_rectangle1
    • 关闭 —— Closing
      • closing
      • closing_circle
      • closing_rectangle1

什么是形态学操作?

  • 形态学操作,也被称为形态学图像处理或形态学变换,是图像处理领域中的一组非线性操作。这些操作基于图像的几何形状,利用预定义的结构元素(也称为核或探针)对图像进行探测和变换。
  • 形态学操作主要处理二值图像或灰度图像,用于提取图像中的形状特征、去除噪声、分离物体、填充孔洞等。

为什么要形态学操作?

  • 图像预处理
    • 噪声去除:形态学操作,特别是腐蚀和开运算,可以有效地去除图像中的细小噪声点。
    • 背景分割:通过膨胀和闭运算,可以将前景物体与背景更清晰地分离开来。
  • 图像分割
    • 区域分离:利用形态学操作,如腐蚀和膨胀,可以分离出图像中相互接触或重叠的物体。
    • 边缘检测:形态学梯度操作能够突出图像中的边缘特征,从而有助于更精确地分割图像。
  • 特征提取
    • 形状分析:形态学操作可以提取出图像中的形状特征,如物体的尺寸、形状和方向等。
  • 图像增强
    • 对比度增强:通过形态学操作,如顶帽变换和黑帽变换,可以增强图像的对比度,使图像中的细节更加清晰。
    • 填充孔洞:闭运算可以填充图像中的细小孔洞,从而改善图像的完整性。

怎么形态学操作?

腐蚀 —— Erosion

  • 腐蚀操作的主要用途包括消除细小的噪声区域、将连通的区域断开
函数名说明
erosion1腐蚀一个区域
erosion _ circle腐蚀一个圆形结构基础的一个区域
erosion _ rectangle1腐蚀一个矩形结构基础的一个区域

erosion1

  • 按样品腐蚀一个区域。
  • 函数erosion1(Region,StructElement:RegionErosion: Iterations:)
  • 参数
    • Region :输入需要腐蚀的区域;
    • StructElement :输入腐蚀区域样品(大小) ;
    • RegionErosion:输出腐蚀后的区域;
    • Iterations:输入往外腐蚀的次数, 1≤ Iterations(lin);
  • 效果
    • erosion1 (ConnectedRegions, ConnectedRegions, RegionErosion, 1)

    • 腐蚀前:
      在这里插入图片描述

    • 腐蚀后:
      在这里插入图片描述

erosion_circle:

  • 使用圆形结构元素对区域进行腐蚀。
  • 函数erosion_circle(Region:RegionErosion: Radius:)
  • 参数
    • Region :输入需要腐蚀的区域;
    • RegionErosion :输出腐蚀后的区域;
    • Radius :输入圆形结构基础的半径;
  • 效果
    • erosion_circle (ConnectedRegions, RegionErosion, 3.5)

    • 腐蚀前:
      在这里插入图片描述

    • 腐蚀后
      在这里插入图片描述

erosion_rectangle1:

  • 使用矩形结构元素对区域进行腐蚀。
  • 函数erosion_rectangle1(Region:RegionErosion: Width, Height:)
  • 参数
    • Region :输入需要腐蚀的区域;
    • RegionErosion :输出腐蚀后的区域;
    • Width:输入腐蚀矩形宽度;
    • Height :输入腐蚀矩形高度;

膨胀 —— Dilation

  • 膨胀操作会增加图像中前景物体的边界,通常用于扩大物体、连接相邻的物体或填补物体内部的细小孔洞
函数名说明
dilation1扩大一个区域
dilation _ circle扩大一个圆形结构基础的一个区域
dilation _rectangle1扩大一个矩形结构基础的一个区域

dilation1

  • 扩大一个区域
  • 函数dilation_circle(Region:RegionDilation: Radius:)
  • 参数
    • Region:输入需要扩大的区域;
    • StructElement:输入扩充区域样品(大小) ;
    • RegionDilation :输出扩充后的区域;
    • Iterations: 输入往外扩充的次数, 1 ≤ Iterations(lin);
  • 效果
    • dilation1 (SelectedRegions, ConnectedRegions, RegionDilation, 1)
    • 膨胀前:
      在这里插入图片描述
    • 膨胀后:
      在这里插入图片描述

dilation_circle

  • 扩大一个圆形结构基础的一个区域
  • 函数dilation_circle(Region:RegionDilation: Radius:)
  • 参数
    • Region:输入需要扩充的区域;
    • RegionDjlation :输出扩充后的区域;
    • Radius:输入圆形结构基础的半径;

dilation_rectangle1

  • 扩大一个矩形结构基础的一个区域
  • 函数dilation_rectangle1(Region:RegionDilation: Width, Height:)
  • 参数
    • Region:输入需要扩充的区域;
    • RegionDilation :输出扩充后的区域;
    • Width:输入扩充矩形宽度;
    • Height:输入扩充矩形高度;

打开 —— Opening

  • 开运算是先腐蚀后膨胀的操作,它有助于去除小的物体、在物体间分离细小的连接以及在保持物体大小不变的情况下平滑物体的边界
函数名说明
opening打开一个被提取了成分的区域
opening _ circle打开一个圆形结构基础的一个区域
opening _ rectangle1打开一个矩形结构基础的一个区域

opening

  • 打开一个被提取了成分的区域
  • 函数 opening(Region, StructElement:RegionOpening::)
  • 参数
    • Region:输入一个需要被提取圆形成分的区域;
    • StructElement :输入成分区域;
    • RegionOpening : 输出被提取了成分该区域;

opening_circle

  • 打开一个圆形结构基础的一个区域;
  • 函数opening_circle(Region:RegionOpening: Radius:)
  • 参数
    • Region:输入一个需要被提取圆形成分的区域;
    • RegionOpening:输出被提取圆形成分的区域;
    • Radius:输入圆形成分的半径;

opening_rectangle1

  • 打开一个矩形结构基础的一个区域;

  • 函数opening_rectangle1(Region:RegionOpening: Width, Height:)

  • 参数

    • Region:输入一个需要被提取矩形成分的区域;
    • RegionOpening :输出一个提取了矩形成分的区域;
    • Width: 输入矩形成分的宽度;
    • Height:输入矩形成分的高度;
  • 效果

    • opening_rectangle1 (SelectedRegions, RegionOpening, 1, 10)
    • 开运算前图像:
      在这里插入图片描述
    • 开运算后图像:
      在这里插入图片描述

关闭 —— Closing

  • 闭运算是先膨胀后腐蚀的操作。它使用指定的结构元素对图像进行膨胀处理,以填补物体内部的细小空洞连接邻近的物体,然后再进行腐蚀处理,以恢复目标区域的边界形态。
函数名说明
closing关闭一个成分区域结构的修正区域
closing_circle关闭一个圆形结构基础的修正区域
closing_rectangle1关闭一个矩形结构基础的修正区域

closing

  • 关闭一个成分区域结构的修正区域;
  • 函数 closing(Region, StructElement:RegionClosing::)
  • 参数
    • Region:输入需要关闭其中部分(区域)的区域
    • StructElement:输入需要关闭的成分区域;
    • Structuring element:输出修正后的区域;

closing_circle

  • 关闭一个圆形结构基础的修正区域;
  • 函数closing_circle(Region:RegionClosing: Radius:)
  • 参数
    • Region:输入要被关闭的区域;
    • RegionClosing :输出关闭后的区域;
    • Radius:输入(需要关闭小于该)圆形基础的半径;

closing_rectangle1

  • 关闭一个矩形结构基础的修正区域;
  • 函数closing_rectangle1(Region:RegionClosing: Width, Height:)
  • 参数
    • Region:输入需要关闭的区域;
    • RegionClosing :输出关闭后的区域;
    • Width:输入(需要关闭小于该)矩形的宽度;
    • Height:输入(需要关闭小于该)矩形的高度;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/63240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytest入门九:feature

fixture是pytest特有的功能,用以在测试执行前和执行后进行必要的准备和清理工作。使用pytest.fixture标识,定义在函数前面。在你编写测试函数的时候,你可以将此函数名称做为传入参数,pytest将会以依赖注入方式,将该函数…

秒优科技-供应链管理系统 login/doAction SQL注入漏洞复现

0x01 产品简介 秒优科技提供的供应链管理系统,即秒优SCM服装供应链管理系统,是一款专为服装电商企业设计的全方位解决方案。是集款式研发、订单管理、物料管理、生产管理、工艺管理、收发货管理、账单管理、报表管理于一体的服装电商供应链管理解决方案。它涵盖了从企划到开…

136.WEB渗透测试-信息收集-小程序、app(7)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:135.WEB渗透测试-信息收集-小程序、app(6) 进入之后我们通过输入…

K近邻原理和距离

K近邻 基本思想欧氏距离算法流程代码基于近邻用户的协同过滤基于近邻物品的协同过滤杰卡德相似度 基本思想 我们根据涂色样本点和未涂色样本点 X 的距离给涂色样本点编号1-6,即:1号样本点距离X最近,其余次之。 那么问题来了:样本…

模型 A/B测试(科学验证)

系列文章 分享 模型,了解更多👉 模型_思维模型目录。控制变量法。 1 A/B测试的应用 1.1 Electronic Arts(EA)《模拟城市》5游戏网站A/B测试 定义目标: Electronic Arts(EA)在发布新版《模拟城…

Git merge 和 rebase的区别(附图)

在 Git 中,merge 和 rebase 是两种用于整合分支变化的方法。虽然它们都可以将一个分支的更改引入到另一个分支中,但它们的工作方式和结果是不同的。以下是对这两者的详细解释: Git Merge 功能:合并分支,将两个分支的…

耐蚀镍基合金的焊接技术与质量控制

耐蚀镍基合金是一类在腐蚀环境中具有优异性能的合金材料,广泛应用于化工、海洋工程、石油天然气等领域。其焊接技术与质量控制对于确保合金的使用性能和安全性至关重要。以下是对耐蚀镍基合金焊接技术与质量控制的详细探讨。 一、焊接技术 焊条选择 耐蚀镍基合金的焊…

机器视觉与OpenCV--01篇

计算机眼中的图像 像素 像素是图像的基本单位,每个像素存储着图像的颜色、亮度或者其他特征,一张图片就是由若干个像素组成的。 RGB 在计算机中,RGB三种颜色被称为RGB三通道,且每个通道的取值都是0到255之间。 计算机中图像的…

操作系统(14)请求分页

前言 操作系统中的请求分页,也称为页式虚拟存储管理,是建立在基本分页基础上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能的一种内存管理技术。 一、基本概念 分页:将进程的逻辑地址空间分成若干个大小相等的页&am…

git企业开发的相关理论(一)

目录 一.初识git 二.git的安装 三.初始化/创建本地仓库 四.配置用户设置/配置本地仓库 五.认识工作区、暂存区、版本库 六.添加文件__场景一 七.查看 .git 文件/添加到本地仓库后.git中发生的变化 1.执行git add后的变化 index文件(暂存区) log…

wxpython图形用户界面编程

wxpython图形用户界面编程 一、wxpython的基础 1.1 wxpython的基础 作为图形用户界面开发工具包 wxPython,主要提供了如下 GUI 内容: 窗口。控件。事件处理。布局管理。 1.2 wxpython的类层次机构 1.3 wxpython的安装 Windows 和 macOS 平台安装&a…

水仙花数(流程图,NS流程图)

题目:打印出所有的100-999之间的"水仙花数",并画出流程图和NS流程图。所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为1531的三次方&#…

不配置python环境,直接用PyCharm就可以?

有的伙伴可能遇到不安装python环境只安装pycharm也可以进行运行代码。 所以自认为是不需要解释器就可以运行? 这个是不现实的,有很多伙伴可能是安装了Pycharm,但Pycharm看你电脑上没有解释器,所以在安装的时候给你默认安装在C盘…

前端面试汇总(不定时更新)

目录 HTML & CSS1. XML、HTML、XHTML 有什么区别?⭐2. XML和JSON的区别?3. 是否了解W3C的规范?⭐4. 什么是语义化标签?⭐⭐5. 行内元素和块级元素的区别?⭐6. 行内元素和块级元素的转换?⭐7. 常用的块级…

SpringCloud微服务实战系列:03spring-cloud-gateway业务网关灰度发布

目录 spring-cloud-gateway 和zuul spring webflux 和 spring mvc spring-cloud-gateway 的两种模式 spring-cloud-gateway server 模式下配置说明 grayLb://system-server 灰度发布代码实现 spring-cloud-gateway 和zuul zuul 是spring全家桶的第一代网关组件&#x…

ActiveMQ 反序列化漏洞CVE-2015-5254复现

文章目录 一、产生原因二、利用条件三、利用过程四、PoC(概念验证)五、poc环境验证使用find搜索vulhub已安装目录打开activeMQ组件查看配置文件端口启动镜像-文件配置好后对于Docker 镜像下载问题及解决办法设置好镜像源地址,进行重启docker查…

vue3监听横向滚动条的位置;鼠标滚轮滑动控制滚动条滚动;监听滚动条到顶端

1.横向取值scrollLeft 竖向取值scrollTop 2.可以监听到最左最右侧 3.鼠标滚轮滑动控制滚动条滚动 效果 <template><div><div class"scrollable" ref"scrollableRef"><!-- 内容 --><div style"width: 2000px; height: 100…

WPF xaml 文件详解

<div id"content_views" class"htmledit_views"><h2><a name"t0"></a>1.总述</h2> 创建好了WPF项目后&#xff0c;最重要的是对 App和MainWindow的理解&#xff0c;在一开始的时候&#xff0c;极容易就直接在Main…

鸿蒙开发-ArkTS 创建自定义组件

在 ArkTS 中创建自定义组件是一个相对简单但功能强大的过程。以下是如何在 ArkTS 中创建和使用自定义组件的详细步骤&#xff1a; 一、定义自定义组件 使用Component注解&#xff1a;为了注册一个组件&#xff0c;使其能够在其他文件中被引用&#xff0c;你需要使用Component…

水表的数字表盘分割数据集labelme格式3023张13类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;3023 标注数量(json文件个数)&#xff1a;3023 标注类别数&#xff1a;13 标注类别名称:["readbox_1","center",&q…