灰度级形态学 - 灰度开运算和灰度闭运算

article/2025/10/3 15:43:44

目录

1. 介绍

2. code


1. 介绍

灰度级的开运算和闭运算和二值图像的处理一样,只不过一个作用于灰度图,一个作用于二值图像

灰度级的开运算公式为:

f \circ b = (f \ominus b) \oplus b

  • 先对图像做腐蚀,然后对腐蚀的结果做膨胀运算

灰度级的闭运算公式为:

f \bullet b = (f \oplus b) \ominus b

  • 先对图像做膨胀,然后对膨胀的结果做腐蚀运算

这里通过图像函数的表达来理解灰度级的开闭运算

 之前介绍过二值图像开运算的几何解释,就是用结构元来前景像素的内部滑动,能到达的位置就是开运算的结果

这里灰度级的也可以做这样的理解,就是用结构元从底部向上推,能推到的位置就是开运算的处理结果。而闭运算,就是结构元从上面往下面推,推到的位置就是闭运算的处理结果

因此,我们可以得到下面的结论:

  • 灰度级开运算:会消除亮点
  • 灰度级闭运算:会消除暗点

这个结果也很容易理解,因为开运算是先腐蚀,再膨胀。腐蚀相当于最小值的操作,很容易将亮点腐蚀掉,那么膨胀再还原的时候,亮点已经消失了,还原不回来了。所以灰度级的开运算的效果是消除亮点,尤其是暗背景中的亮点

同理,闭运算可以消除暗点,尤其是亮背景下的暗点

因此,如果图像有椒盐噪声的话,可以用开运算消除盐粒噪声,再用闭运算消除胡椒噪声

2. code

 代码实现:

import numpy as np
import cv2def noise(img):             # 添加椒盐噪声for i in range(1000):x = np.random.randint(0,img.shape[0])y = np.random.randint(0,img.shape[1])img[x][y] = np.random.randint(0,2) * 255    # 随机产生0 255 椒盐噪声return img.astype(np.uint8)img = cv2.imread('./flower.jpg',0)
dst = noise(img.copy())                 # 产生噪声图像kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))dst_open = cv2.morphologyEx(dst,cv2.MORPH_OPEN,kernel)          # 灰度开运算
dst_close = cv2.morphologyEx(dst,cv2.MORPH_CLOSE,kernel)        # 灰度闭运算cv2.imshow('img',np.hstack((img,dst,dst_open,dst_close)))       # show
cv2.waitKey()
cv2.destroyAllWindows()

处理结果:

图像顺序:原图、椒盐污染的图片、开运算对噪声图片处理、闭运算对噪声图片处理

 

这里发现,开运算处理后的图像,所以消除了盐粒噪声,但是图像有点偏暗。这里因为之前说过,开闭运算主要看第一次的处理,第二次只是还原大部分的图像而已。所以开运算先腐蚀的话,就会比原图稍微暗一些。


http://chatgpt.dhexx.cn/article/lvFeJ2Sq.shtml

相关文章

OpenCV(七)形态学操作2--开运算与闭运算

目录 概述: morphologyEX()函数 一、开运算(分开) 1、基础理论 1、作用: 2、代码 3、效果 二、闭运算(封闭) 1、基础理论 1、作用 2、过程 2、代码 3、效果 总代码 参考资料: 概述…

开运算—闭运算

转载:https://blog.csdn.net/hanshanbuleng/article/details/80657148 如果不了解腐蚀与膨胀原理的同学那请看我前一期博客哦!) 1.开运算 开运算 先腐蚀运算,再膨胀运算(看上去把细微连在一起的两块目标分开了&…

Halcon形态学处理-腐蚀、膨胀、开运算、闭运算、顶帽运算和底帽运算

提示:文章参考了网络上其他作者的文章,以及相关书籍,如有侵权,请联系作者。 文章目录 前言一、腐蚀和膨胀1.腐蚀2.膨胀 二、开运算和闭运算1.开运算2.闭运算 三、顶帽运算和底帽运算1.顶帽运算2.底帽运算 总结参考文献 前言 图像的…

Opencv中的开运算和闭运算操作讲解(python实现)

文章目录 1.首先了解腐蚀和膨胀原理2.开运算(1)为什么开运算可以去白噪点呢?(2).函数讲解(3)代码实战 3.闭运算(1)函数讲解(2)代码实战 1.首先了解…

膨胀 腐蚀 开运算 闭运算 matlab,11. 形态学膨胀、腐蚀、开运算、闭运算

1. 膨胀:对边界点进行扩充,填充空洞,使边界向外部扩张的过程。 2. 腐蚀:消除物体边界点,使边界向内部收缩的过程,把小于结构元素的物体去除掉。 3. 开运算: 先腐蚀后膨胀的过程称为开运算,作用:去除孤立的小点,毛刺,消除小物体,平滑较大物体边界,同时不改变其面积。 4. 闭…

开运算、闭运算及其所用

1.开运算 开运算 先腐蚀运算,再膨胀运算(看上去把细微连在一起的两块目标分开了) 开运算的效果图如下图所示: 开运算总结: (1)开运算能够除去孤立的小点,毛刺和小桥&…

python --opencv图像处理形态学(开运算、闭运算、梯度运算、顶帽运算、黑帽运算)

引言 前面介绍了图像形态学的两种基础算法,图像腐蚀和图像膨胀,本篇接着介绍图像形态学中的开运算、闭运算以及梯度运算。 需要了解清楚图像的腐蚀与膨胀基础原理,不然真的没办法理解开运算和闭运算。 第一件事情还是给图像增加噪声,思路沿…

二值图像开闭运算matlab,【数字图像处理】图像开运算与闭运算

图像开启与闭合 图像开运算与闭运算与膨胀和腐蚀运算有关,由膨胀和腐蚀两个运算的复合与集合操作(并、交、补等)组合成的所以运算构成。 开运算与闭运算依据腐蚀和膨胀的不可逆性,演变而来。 开运算:先对图像腐蚀后膨胀 闭运算:先…

OpenCV之开运算与闭运算

1.开运算:先腐蚀,后膨胀 开运算总结: (1)开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便。 (2)开运算是一个基于几何运算的滤波器。…

halcon 开运算与闭运算

例一:毛刺在往外凸的面上 策略1:分割出黑色部分,然后通过开运算去掉毛刺,再通过原黑色部分区域减去开运算之后的区域,得到毛刺部分的区域。 1 read_image (Tu, C:/Users/xiahui/Desktop/tu.jpg) 2 binary_threshold …

图像开运算

开运算是先腐蚀后膨胀的过程,它能去除孤点、毛刺和小桥(连接两区域的小点),消除小物体、平滑大物体的边界,并且不明显改变面积。 开运算公式如下: #include"cv.h" #include "highgui.h&…

8.3 开运算

点击此处返回总目录 一、什么是开运算 一个图像先进行腐蚀,再进行膨胀。 这种操作,最后得到的图像就是对原始图像的去燥处理。并保持原有图像的形状不变。 这种操作叫做开运算。 官网上的例子&#xff…

形态学应用——图像开运算与闭运算

(如果不了解腐蚀与膨胀原理的同学那请看我前一期博客哦!) 1.开运算 开运算 先腐蚀运算,再膨胀运算(看上去把细微连在一起的两块目标分开了) 开运算的效果图如下图所示: 开运算总结&#xf…

20、开运算与闭运算

一、开运算含义 先进行腐蚀再进行膨胀就叫做开运算。开运算 (image) 膨胀 (腐蚀 (image)) 图像被腐蚀后,去除了噪声,但会压缩图像;对腐蚀过的图像进行膨胀处理,可以去除噪声并保持原有形状。 二、morphologyEx() 实现开运算 2…

形态学操作——开运算与闭运算

1.开运算 开运算 先腐蚀运算,再膨胀运算(看上去把细微连在一起的两块目标分开了) 开运算的效果图如下图所示: 开运算总结: (1)开运算能够除去孤立的小点,毛刺和小桥&am…

形态学 - 开运算和闭运算

目录 1. 介绍 2. 代码实现 2.1 开运算 2.2 闭运算 1. 介绍 膨胀和腐蚀操作都会有一个通病,就是会改变原目标的大小 开运算:先对目标腐蚀在膨胀 开运算能够平滑物体的轮廓、断开狭窄的狭颈、消除细长的突出物等等 开运算的一些理解:先…

RNN流程详解

RNN及其代码流程 本文重点关注RNN的 整个流程,而不是BP的推导过程 什么是RNN Recurrent Neural Network 循环神经网络 为什么需要RNN? 普通的神经网络都只能单独地处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是&#…

微信小程序:如何在{{}}中使用函数?WXML+WXS

前言 在项目中涉及到百分比的计算&#xff0c;js浮点数运算会出现精度问题&#xff0c;造成小数位数过多&#xff0c;因此想在模板语法中对值进行相应的处理。 开始 按照常规用法&#xff0c;使用js中的toFixed()进行处理&#xff1a; <view>&#xffe5;{{(cashMone…

wxPython:wx.Font详细解释用法

官方构造解释&#xff1a; 注解用法&#xff1a; wx.Font(pointSize, family, style, weight, underlineFalse, faceName"", encodingFONTENCODING_DEFAULT) pointSize &#xff1a;文字大小&#xff1a;floatfamily &#xff1a;字体系列&#xff1a;FontFamilyst…

小程序 - wxs

wxs&#xff1a; 在小程序里写函数表达式&#xff0c;做数据处理 官方文档 wxs WXS&#xff08;WeiXin Script&#xff09;是小程序的一套脚本语言&#xff0c;结合 WXML&#xff0c;可以构建出页面的结构。 WXS 与 JavaScript 是不同的语言&#xff0c;有自己的语法&#x…