Halcon开运算opening

Halcon开运算

文章目录

  • Halcon开运算

开运算的计算步骤是先腐蚀,后膨胀。通过腐蚀运算能去除小的非关键区域,也可以把离得很近的元素分隔开,再通过膨胀填补过度腐蚀留下的空隙。因此,通过开运算能去除一些孤立的、细小的点,平滑毛糙的边缘线,同时原区域面积也不会有明显的改变,类似于一种“去毛刺”的效果。图(a)所示为原始图像,目标是提取图中比较亮的一块区域。
在这里插入图片描述
图(b)的红色部分为经阀值处理后提取的较亮区域,可见有一些杂点和毛边。为了在保留主体部分的同时平滑选区的边缘,这里使用开运算进行处理。经过opening算子处理后,杂点消失,毛糙的边缘也有所平滑。图(c)是开运算后的效果,可见边缘杂点被移除,前景目标更清晰。
图中的开运算处理代码如下:

*读取待检测的图像
read_image (Image,'data/board')
*将图像转换为单通道的灰度图像
rgbl_to_gray(Image, GrayImage)
*创建矩形区域
gen_rectanglel (Rectangle, 259, 87, 957, 909)
*进行裁剪,将感兴趣区域单独提取出来
reduce_domain (GrayImage, Rectangle, ImageReduced)
*使用阈值处理,将灰度值大于设定范围的像素选取出来
threshold(ImageReduced,Light,85,255)
*创建圆形结构元素,用于开运算
gen_circle(StructElement,6,6,7)
*进行开运算,去除背景中的杂点
opening(Light,StructElement, Large)
dev_clear_window ()
dev _display (Large)

其中关于灰度阈值的选择,可以通过将鼠标指针悬停在关键像素上,查看其灰度值进行估算。注意,这里的图像都是暗背景、亮目标。如果是亮背景、暗目标,可以用invert_image进行颜色反转。
如果圆形结构元素半径过大,可能导致图像内部出现大的空洞;如果圆形结构元素半径过小,可能会使杂点消除得不完全,因此可以根据实际需要不断调整该参数。
上文中使用了opening算子进行开运算处理。该算子的原型如下:

opening(Region, StructElement : RegionOpening ::)

其中各参数的含义如下。
(1)参数1:Region 为输入的图像区域。
(2)参数2:StructElement 为输入的结构元素,该结构元素应提前指定。
(3)参数3:RegionOpening为输出的经开运算处理后的区域。
开运算的效果与腐蚀类似,其本质也是一种腐蚀操作。经开运算处理后,图像上的大面积的区
域依然能基本保持完整,而面积小的区域,如点或短线将被移除。
除了上文中的opening 算子以外,Halcon中与开运算有关的算子如下。(1)opening_circle:使用圆形结构元素对区域进行开运算处理。(2)opening_rectangle1:使用矩形结构元素对区域进行开运算处理。(3)opening golay:使用格雷字母表中的元素对区域进行开运算处理。
(4)opening_seq:分隔重叠的区域。该算子一般是erosionl、connection和dilation1算子的连
续使用。如果重叠的区域小于结构元素,相交的两个区域将被分隔开来。

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

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

相关文章

Vue3全局属性app.config.globalProperties

文章目录 一、概念二、实践2.1、定义2.2、使用 三、最后 一、概念 一个用于注册能够被应用内所有组件实例访问到的全局属性的对象。点击【前往】访问官网 二、实践 2.1、定义 在main.ts文件中设置app.config.globalPropertie import {createApp} from vue import ElementPl…

fmincon函数的决策变量可以是二维矩阵,但不建议是高维矩阵

1)二维矩阵代码 clear all clc% 定义目标函数 fun (x) sum(sum(x.^2));% 初始矩阵 x0 2 rand(2, 2);% 定义空的线性不等式约束 A []; b [];% 定义空的线性等式约束 Aeq []; beq [];% 定义变量的上下界 lb ones(2,2); ub [];% 使用 fmincon 求解 options …

hugo-theme-kiwi V0.0.2 博客主题上新了时间轴

至此佳节,我在此给正在屏幕前浏览本文的您和您的家人,恭祝元旦快乐,虽然,这声祝福是晚了,但却不妨碍我我由内心深处对您和您的家人的诚挚祝福! 新的一年,从这一天逐渐步入我们的生活&#xff0c…

CSS 纵向底部往上动画

<template><div class"container" mouseenter"startAnimation" mouseleave"stopAnimation"><!-- 旋方块 --><div class"box" :class"{ scale-up-ver-bottom: isAnimating }"><!-- 元素内容 --&g…

oracle物化视图

物化视图定义 视图是一个虚拟表&#xff08;也可以认为是一条语句&#xff09;&#xff0c;基于它创建时指定的查询语句返回的结果集&#xff0c;每次访问它都会导致这个查询语句被执行一次&#xff0c;为了避免每次访问都执行这个查询&#xff0c;可以将这个查询结果集存储到…

【JVM】一文掌握JVM垃圾回收机制

作为Java程序员,除了业务逻辑以外,随着更深入的了解,都无法避免的会接触到JVM以及垃圾回收相关知识。JVM调优是一个听起来很可怕,实际上很简单的事。 感到可怕,是因为垃圾回收相关机制都在JVM的C++层实现,我们在Java开发中看不见摸不着;而实际很简单,是因为它说到底,也…

听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文件中定义了以下…

开放路径最短优先协议OSPF基础

开放路径最短优先协议OSPF基础 对比RIP 对比距离矢量路由协议(RIP)&#xff0c;OSPF协议交换的不是路由条目&#xff0c;而是链路信息&#xff0c;并通过SPF算法计算出最佳路由&#xff0c;链路状态信息内含有路由接口、IP地址、掩码、cost值等&#xff0c;进而形成了链路状态…

Linux--批量自动装机

实验环境 随着某公司业务不断发展&#xff0c;服务器主机的数量也迅速增长&#xff0c;对于功能变更或新采购的服务器&#xff0c; 需要重新安装CentOS7操作系统&#xff0c;为了提高服务器装机效率&#xff0c;要求基于PXE网络实现全自动无人值 守批量安装。 需求描述 > 服…

三、C语言中的分支与循环—break和continue语句(8)循环结构 完

本章分支结构的学习内容如下&#xff1a; 三、C语言中的分支与循环—if语句 (1) 三、C语言中的分支与循环—关系操作符 (2) 三、C语言中的分支与循环—条件操作符 与逻辑操作符(3) 三、C语言中的分支与循环—switch语句&#xff08;4&#xff09;分支结构 完 本章循环结构的…

如何用AI帮你写年会贺词

如何用AI帮你写年会贺词 又到了岁末年初了&#xff0c;上一期图文讲解了如何自己制作日程效率本&#xff1a; 手把手教你自己动手使用ONLYOFFICE制作2024年历日记本 现在继续&#xff0c;讲一讲如何使用人工智能AI来帮我们编写公司年会贺词。所有公司都会在年底的时候开一个…

摩尔线程S80 对Unity HDRP的提示:硬件不支持体积材质球

错误 Hardware not supported for Volumetric Materials UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)解决方式 无。 会在运行的时候出发&#xff0c;不会暂停play&#xff0c;但是会一直出现error的log。 使用URP不会提示这些错误&#xff0c; 目的 提示…