OpenCV库中的开运算,闭运算,顶帽,黑帽,梯度

目录

一:引言

二:学习目的

开运算的基本概念:

闭运算的基本概念:

顶帽的基本概念:

黑帽的基本概念:

梯度的基本概念:

三:具体操作

3.1开运算的具体操作

3.2:闭运算

3.3:黑帽与顶帽的具体操作

3.4:梯度的具体操作


一:引言

        在图像处理和计算机视觉领域,形态学运算是一类重要的工具,用于分析和处理图像的结构和形态特征,而说起来开运算,闭运算等就不得不说图像处理中的腐蚀和膨胀(在别的篇幅里)而开闭运算则是在腐蚀和膨胀的基础上对图像进行处理。而顶帽与黑帽则是在这基础上更上级的操作。

二:学习目的

明白开运算,闭运算,顶帽,黑帽,梯度的概念与原理,并且了解各自适用于哪种应用场景

开运算的基本概念:

        前面已经说过开运算是图像对腐蚀和膨胀的组合,它通常用于去除图像中的小噪声,同时保留图像的主要形态特征。其先后顺序如下

  • 腐蚀:首先对图像进行腐蚀操作,去除小的对象和噪声。
  • 膨胀:然后对腐蚀后的图像进行膨胀操作,恢复原始图像的形态。

闭运算的基本概念:

        闭运算与开运算类似,它用于填充图像中的小孔洞或细缝,同时保留图像的主要形态特征。其先后顺序如下:

  • 膨胀:首先对图像进行膨胀操作,填充小孔洞和连接分离的对象。
  • 腐蚀:然后对膨胀后的图像进行腐蚀操作,恢复原始图像的形态。

顶帽的基本概念:

        前面已经说到顶帽是在这基础上更上级的操作,顶帽变换用于提取比其背景更亮的区域,特别是用于检测局部亮的区域。其先后顺序如下:

  • 开运算:对原始图像进行开运算,得到图像的平滑版本。
  • 差值:原始图像减去开运算后的图像,得到顶帽变换图像。

黑帽的基本概念:

        黑帽与顶帽类似,只是先进行的闭运算而已。

  • 闭运算:对原始图像进行闭运算,得到图像的平滑版本。
  • 差值:闭运算后的图像减去原始图像,得到黑帽变换图像。

梯度的基本概念:

        形态学梯度是一种有效的边缘检测工具,通过膨胀和腐蚀操作的组合,可以突出图像中的边缘信息。具体的步骤是先腐蚀在膨胀,在边缘检测上很有用

三:具体操作

3.1开运算的具体操作

import cv2
import numpy as np#导入必要的包



a = cv2.imread(r'C:\Users\35173\Desktop\zw.png')#读取图片
cv2.imshow('zw',a)#展示图片
cv2.waitKey(10000)
k = np.ones((2,2),np.uint8)#生成一个2*2的全1矩阵,作为卷积核这个可以进行调整以改变处理结果
zw_new = cv2.morphologyEx(a,cv2.MORPH_OPEN,k)#这个是最核心的一行
cv2.imshow('zw_new_o',zw_new)
cv2.waitKey(10000)

结果:

zw_new = cv2.morphologyEx(a,cv2.MORPH_OPEN,k)该行代码使用了cv2库中的morphologyEx方法。里面的参数cv2.MORPH_OPEN决定着是哪种处理例如:

zw_new2 = cv2.morphologyEx(a,cv2.MORPH_CLOSE,k)

而MORPH_CLODE代表的是对图像进行闭运算

3.2:闭运算

import cv2
import numpy as np#导入必要的包

a = cv2.imread(r'C:\Users\35173\Desktop\zw.png')
cv2.imshow('zw',a)
cv2.waitKey(10000)
k = np.ones((2,2),np.uint8)
zw_new = cv2.morphologyEx(a,cv2.MORPH_OPEN,k)
cv2.imshow('zw_new_o',zw_new)
cv2.waitKey(10000)
# #闭运算
zw_new2 = cv2.morphologyEx(zw_new,cv2.MORPH_CLOSE,k)
cv2.imshow('zw_new_c',zw_new2)
cv2.waitKey(10000)

结果如下所示:先开运算,再闭运算,指纹的噪点被去了大半,且有些断点也被修复,如红圈部分

结果:

3.3:黑帽与顶帽的具体操作

import cv2
import numpy as np#导入必要的包



a = cv2.imread(r'C:\Users\35173\Desktop\zw.png')#读取图片
cv2.imshow('zw',a)#展示图片
cv2.waitKey(10000)
k = np.ones((2,2),np.uint8)
zw_dm = cv2.morphologyEx(a,cv2.MORPH_TOPHAT,k)
cv2.imshow('zw_dm',zw_dm)
cv2.waitKey(10000)
zw_hm = cv2.morphologyEx(a,cv2.MORPH_BLACKHAT,k)
cv2.imshow('zw_hm',zw_hm)
cv2.waitKey(10000)

运行结果:从结果上可以看到黑帽变换(右1)用于提取图像中比其周围背景更暗的区域,通常用于增强局部的暗点或低亮特征。而顶帽变化增强图像中比背景更亮的区域,用于检测光斑或高亮特征。

3.4:梯度的具体操作


import cv2
import numpy as np#导入必要的包



a = cv2.imread(r'C:\Users\35173\Desktop\zw.png')#读取图片
cv2.imshow('zw',a)#展示图片
cv2.waitKey(10000)
k = np.ones((2,2),np.uint8)
zw_tidu = cv2.morphologyEx(a,cv2.MORPH_GRADIENT,k)
cv2.imshow('zw_tidu',zw_tidu)
cv2.waitKey(10000)

结果:图像产生了类似镂空的感觉就是梯度其主要效果是增强图像中的边缘和轮廓,使得物体的形态特征更加清晰。

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在图像处理运算运算对于去除图像的噪声和增强物体之间的连接点非常重要。运算是先进行腐蚀操作,再进行膨胀操作,主要用于消除图像的噪声。腐蚀操作可以缩小图像的物体,并消除较小的噪声点,而膨胀操作则可以还原物体的大小。运算则是先进行膨胀操作,再进行腐蚀操作,主要用于填充物体之间的空隙,增强物体之间的连接点。在Python,可以使用OpenCV的morphologyEx函数来实现图像的运算运算操作。其,cv2.MORPH_OPEN参数对应运算操作。具体的代码实现可以参考引用的Python-OpenCV运算实例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [图像形态学运算之图像运算 含python实现](https://blog.csdn.net/Ibelievesunshine/article/details/105018063)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Python-openCV运算实例](https://download.csdn.net/download/weixin_38608379/12850048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [【python图像处理】python运算运算梯度运算运算运算](https://blog.csdn.net/Ray_Songaaa/article/details/107378493)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值