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:使用矩形结构元素对区域进行闭运算处理。
总体来说,开运算适合去除图上的杂点和噪声等非关键的元素。而闭运算则相反,它是用于填
补区域中的小空隙。开运算和闭运算都不会改变主体部分的形态。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

echarts 折线图根据x轴时间渲染不同颜色的折线

footIm 如上图所示一条折线多种颜色 后端数据返回"data": [ { “dateTime”: “2023-10-11 00:02:10”, “pos”: 6, “curr”: 104.6 }, { “dateTime”: “2023-10-11 00:02:39”, “pos”: 7, “curr”: 104.6 }, …] 我们拿到后端返回的res.data传递给…

mysql原理--Explain详解

1.概述 一条查询语句在经过 MySQL 查询优化器的各种基于成本和规则的优化会后生成一个所谓的 执行计划 ,这个执行计划展示了接下来具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。设计 MySQL 的…

Java EE Servlet之Cookie 和 Session

文章目录 1. Cookie 和 Session1.1 Cookie1.2 理解会话机制 (Session)1.2.1 核心方法 2. 用户登录2.1 准备工作2.2 登录页面2.3 写一个 Servlet 处理上述登录请求2.4 实现登录后的主页 3. 总结 1. Cookie 和 Session 1.1 Cookie cookie 是 http 请求 header 中的一个属性 浏…

【微服务】2.创建多个服务器

vmware有克隆功能直接拷贝以及设置好的虚拟机 如果要自己设置IP地址,修改/etc/sysconfig/network-scripts/ 编辑ifcfg-ens33需改ip地址 #开机加载网络配置启动网络服务 ONBOOT"yes" #分配ip的协议 none static :不自动分配,手动设置ip / dhcp…

Iterator(迭代器) 和 list

Iterator(迭代器) 和 list 文章目录 一、Iterator(迭代器)二、list 提示:以下是本篇文章正文内容,下面案例可供参考 一、Iterator(迭代器) 对 collection 进行迭代的迭代器。迭代器…

基于简化版python+VGG+MiniGoogLeNet的智能43类交通标志识别—深度学习算法应用(含全部python工程源码)+数据集+模型(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建1)VGG模型简化版2)GoogLeNet简化版——MiniGoogLeNet 3. 模型训练及保存 相关其它博客工程源代码下载其它资料下载 前言 本项目专注于解决出国自驾游特定场景下的交…

Avalonia学习(十六)-Mapsui

今天开始继续Avalonia练习。 本节&#xff1a;Mapsui 1.引入 Mapsui.Avalonia 2.项目引入 前台代码 <Window xmlns"https://github.com/avaloniaui"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:vm"using:MapsuiAvalonia.Vi…

个人任务和项目管理软件tududi的安装

现在已经是 2024 年了&#xff0c;祝大家新年快乐&#xff0c;万事如意。 什么是 tu|du|di ? tu|du|di是一个使用 Sinatra 构建的任务和项目管理 Web 应用程序。它允许用户有效地管理他们的任务和项目&#xff0c;将它们分类到不同的区域&#xff0c;并跟踪截止日期。tu|du|d…

Linux驱动学习—ioctl接口

1、unlock_ioctl和ioctl有什么区别&#xff1f; kernel 2.6.36 中已经完全删除了struct file_operations 中的ioctl 函数指针&#xff0c;取而代之的是unlocked_ioctl 。ioctl是老的内核版本中的驱动API&#xff0c;unlock_ioctl是当下常用的驱动API。unlocked_ioctl 实际上取…

服务器监控软件夜莺部署(一)

文章目录 一、夜莺介绍1. 简介2. 相关网站 二、夜莺部署1. 部署架构2. Docker启动3. 配置数据源4. 内置仪表盘效果5. 时序指标效果 一、夜莺介绍 1. 简介 夜莺监控系统是一款专业的服务器监控软件&#xff0c;它可以帮助用户实时监测服务器的CPU、内存、磁盘利用率等。 夜莺监…

0101包冲突导致安装docker失败-docker-云原生

文章目录 1 前言2 报错3 解决结语 1 前言 最近在学习k8s&#xff0c;前置条件就是要安装指定版本的docker&#xff0c;命令如下 yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.62 报错 file /usr/libexec/docker/cli-plugins/docker-buildx fr…

动态内存管理篇

为什么要动态内存分配&#xff1f; 之前&#xff0c;我们向内存申请空间&#xff0c;有两种方式&#xff0c;一种是定义变量&#xff0c;一种是建立数组&#xff1b;但是&#xff0c;这两种方式都有缺陷&#xff0c;创建的空间大小是固定的&#xff0c;在程序的运行过程中&…

听GPT 讲Rust源代码--library/alloc(2)

File: rust/library/alloc/src/vec/mod.rs 在Rust源代码中&#xff0c;rust/library/alloc/src/vec/mod.rs这个文件是Rust标准库中的Vec类型的实现文件。Vec是一个动态大小的数组类型&#xff0c;在内存中以连续的方式存储其元素。 具体来说&#xff0c;mod.rs文件中定义了以下…

我的512天创作者纪念日总结:高效、高现

文章目录 512天创作者纪念日&#xff1a;2023年的12月31日CSDN的512天消息提醒第一篇文章&#xff0c;最后一篇文章总计847篇文章&#xff0c;每月发文分布512天&#xff0c;各专栏文章统计512天&#xff0c;互动总成绩 512天创作者纪念日&#xff1a;2023年的12月31日 2023年…

【Linux C | 文件I/O】fcntl函数详解 | 设置描述符非阻塞、文件(记录)锁

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

什么情况下不应该使用 LockWindowUpdate ?

在之前的文章中&#xff0c;我们将了解了 LockWindowUpdate 应该在什么场景下使用&#xff0c;也就是拖动的场景。 今天&#xff0c;我们来看看 LockWindowUpdate 被误用的一些场景。 人们看到 LockWindowUpdate 的“您锁定的窗口将无法重新绘制自身”行为&#xff0c;并将其…

ToDesk Linux 客户端安装(欧拉系统)

下载链接 下载链接 https://newdl.todesk.com/linux/todesk-v4.3.1.0-x86_64.rpm &#xff08;使用4.3.1.0覆盖安装后&#xff0c;临时密码将会变更&#xff09; 安装命令&#xff1a; sudo rpm -Uvh todesk-v4.3.1.0-x86_64.rpm启动命令&#xff1a; todesk启动命令只能在桌…

Spring通信传参的方法

Spring通信传参的方法 目录概述需求&#xff1a; 设计思路实现思路分析1.简单参数传递2.复合参数3.动态参数 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better resul…

typescript,eslint,prettier的引入

typescript 首先用npm安装typescript&#xff0c;cnpm i typescript 然后再tsc --init生成tsconfig.json配置文件&#xff0c;这个文件在package.json同级目录下 最后在tsconfig.json添加includes配置项&#xff0c;在该配置项中的目录下&#xff0c;所有的d.ts中的类型可以在…

[新版Hi3531DV200 性能强悍]

新版Hi3531DV200 性能强悍 Hi3531DV200是针对多路高清/超高清&#xff08;1080p/4M/5M/4K&#xff09;DVR产品应用开发的新一代专业SoC芯片。Hi3531DV200集成了ARM A53四核处理器和性能强大的神经网络推理引擎&#xff0c;支持多种智能算法应用。同时&#xff0c;Hi3531DV200还…