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

Halcon灰度图像的形态学运算

Halcon灰度图像的形态学运算

本文介绍的算子的输入类型是灰度的Image图像。

1. 灰度图像与区域的区别

基于区域的形态学运算与基于灰度图像的形态学运算的根本区别在于,二者输入的对象不同。前者输入的是一些区域,并且这些区域是经过闽值处理的二值图像区域;而后者的输入则是灰度图像。
当输入对象是一些二值区域时,这些区域就成了算子的主要操作对象。区域的灰度是二值的,并不会发生变化。形态学运算改变的是这些区域的形状,如通过腐蚀使区域面积变小,或者通过膨胀使区域面积变大等。
而当输入对象是灰度图像时,形态学运算改变的则是像素的灰度,表现为灰度图像上的亮区域或暗区域的变化。
腐蚀运算是将图像中的像素点赋值为其局部邻域中灰度的最小值,因此图像整体灰度值减少,图像中暗的区域变得更暗,较亮的小区域被抑制。
膨胀运算是将图像中的像素点赋值为其局部邻域中灰度的最大值,经过膨胀处理后,图像整体
灰度值增大,图像中亮的区域扩大,较暗的小区域消失。注意,灰度图像的形态学运算也可以理解为针对暗背景、亮目标的图像进行的运算。

2. 灰度图像的形态学运算效果及常用算子

本部分以一个例子来说明对灰度图像进行腐蚀、膨胀、开运算及闭运算操作的效果。如图所示,通过腐蚀运算,将 mask 结构元素中的最小灰度值赋给原图中的像素,结果是图像变暗了,局部的亮的细节,如河流部分被抑制了。膨胀运算却正相反,是将 mask结构元素中的最大灰度值赋给原图中的像素,因此图像整体变得更亮,局部较亮的细节部分被“膨胀”了,而暗的细节部分则被抑制了。图(a)为输入的原始灰度图像,图(b)为腐蚀处理后的图像,图(c)为膨胀处理后的图像。
在这里插入图片描述
灰度图像的开运算与闭运算也与此类似。开运算是先腐蚀后膨胀,闭运算是先膨胀后腐蚀。通过对灰度图像图(a)进行开运算处理,图像中较亮的小细节消失,如图 (b)所示;反之,通过对灰度图像进行闭运算处理,图像中较暗的局部小区域消失,如图(c)所示。
在这里插入图片描述
上述过程的代码如下:

*读取输入图像
read_image (Imagecolor, 'data/village')
*将原始图像转换为灰度图像,作为形态学处理的输入
rgbl_to_gray (ImageColor, Image)
*进行灰度图像腐蚀操作
gray_erosion_shape (Image, ImageMin, 11, 11, 'octagon')
*进行灰度图像膨胀操作
gray_dilation_shape (Image, ImageMax, 11, 11, 'octagon')
*进行灰度图像开运算操作
gray_opening_shape (Image, ImageOpening, 7, 7, 'octagon')
*进行灰度图像闭运算操作
gray_closing _shape (Image, ImageClosing, 7, 7, 'octagon')

由两组图可见灰度图像的形态学操作效果。
(1)经过灰度图像腐蚀操作,图像变暗了,这是因为图像中较亮的局部区域被“收缩”了,较暗的局部区域被“扩大”了,因而图像变暗了。
(2)经过灰度图像膨胀操作,较亮的局部区域被“扩大”了,而较暗的局部区域被“收缩”了,图像整体变得更亮。
(3)对灰度图像进行开运算操作之后,图像中较亮的小细节消失,如田野中的小路被暗区域覆
盖了。
(4)对灰度图像进行闭运算操作之后,可以看到较暗的一些点消失了,类似于灰度图像中的
“小孔隙”被填补了,同时较亮的区域的边缘更清晰了。
下面介绍常用的灰度形态学操作中的一些算子,实际检测中可根据需要选用。
1.对灰度图像的腐蚀运算,常用的算子如下:
(1)gray_erosion_rect:使用矩形的mask进行腐蚀操作。
(2)gray_erosion_shape :使用选定的形状mask进行腐蚀操作。
2.对灰度图像的膨胀运算,常用的算子如下:
(1)gray_dilation_rect:使用矩形的mask进行膨胀操作。
(2)gray_dilation_shape:使用选定的形状mask进行膨胀操作。
3.对灰度图像的开运算,常用的算子如下:
(1)gray_opening:对图像进行灰度值的开运算。
(2)gray_opening_rect:使用矩形的mask对图像进行灰度值的开运算。
(3)gray_opening_shape :使用选定的形状mask对图像进行灰度值的开运算。
4.对灰度图像的闭运算,常用算子如下:
(1)gray_closing:对图像进行灰度值的闭运算。
(2)gray_closing_rect:使用矩形的mask对图像进行灰度值的闭运算。
(3)gray_closing shape:使用选定的形状mask对图像进行灰度值的闭运算。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 代码随想录算法训练营第四十二天| 42. 接雨水、84.柱状图中最大的矩形
  • MATLAB遗传算法求带自提点的时间窗同时取送货车辆调度路径规划(VRPSPDTW)实例代码
  • ant design pro 中用户的表单如何控制多个角色
  • 大数据应用整理
  • IDEA:如何在idea中设置自动导包
  • 17、springboot3 vue3开发平台-前端-主页面布局搭建
  • 使用 prerenderRoutes 进行预渲染路由
  • 设计模式实战:旅行预订系统的设计与实现
  • Java 操作 Redis和redis持久化
  • C++图笔记(二)最短路
  • 【速通C语言(纯小白版)】第一部分:准备工作
  • microsoft edge怎么关闭安全搜索
  • 【ubutnu18.04】k8s 部署4: worker节点配置1.31.0和containerd 1.7.20
  • Golang | Leetcode Golang题解之第338题比特位计数
  • 【学习笔记】卫星网络(NTN)的窄带物联网(NB-IoT)/增强型机器类型通信(eMTC)研究 -- 3GPP TR 36.763(四)
  • ES6指北【2】—— 箭头函数
  • 收藏网友的 源程序下载网
  • HTTP 简介
  • javascript从右向左截取指定位数字符的3种方法
  • Java精华积累:初学者都应该搞懂的问题
  • Spring Cloud中负载均衡器概览
  • Vue全家桶实现一个Web App
  • yii2中session跨域名的问题
  • 七牛云假注销小指南
  • 前端性能优化——回流与重绘
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何用vue打造一个移动端音乐播放器
  • 探索 JS 中的模块化
  • 译米田引理
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #{}和${}的区别是什么 -- java面试
  • #QT(一种朴素的计算器实现方法)
  • #Ubuntu(修改root信息)
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (一)RocketMQ初步认识
  • (一一四)第九章编程练习
  • (杂交版)植物大战僵尸
  • (转) Face-Resources
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)重识new
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • **python多态
  • *ST京蓝入股力合节能 着力绿色智慧城市服务