OpenCV形态学-图像腐蚀和膨胀到底有多厉害!

💥💥💥欢迎来到本博客💥💥💥
🎉作者简介⭐️⭐️⭐️目前计算机研究生在读。主要研究方向是人工智能和群智能算法方向。目前熟悉python网页爬虫、机器学习、计算机视觉(OpenCV)、群智能算法。然后正在学习深度学习的相关内容。以后可能会涉及到网络安全相关领域,毕竟这是每一个学习计算机的梦想嘛!
📋博主优势🌞🌞🌞博客内容尽量做到每一步都可以进行实操,做到极度细致,不仅仅可以满足自己复习,也方便大家进行学习!亲民!!!
📝目前更新🌟🌟🌟目前已经更新了关于网络爬虫得相关系列、机器学习得相关知识、目前正在更新计算机视觉-OpenCV,后续将继续更新其他知识。
📃个人主页吃猫的鱼python个人主页
🔎支持🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以免费的关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!
💛💛💛本文摘要💛💛💛

本文我们将继续讲解相关计算机视觉的相关知识。具体包括以下几个内容。
1.图像形态学-腐蚀
2.图像形态学-膨胀
3.图像形态学-开运算
4.图像i形态学-闭运算
在这里插入图片描述

🌝前言

人工智能在全球范围内呈爆发式发展,根据麦肯锡全球研究院的预测,AI带来的社会革命,将比工业革命的速度快10倍,规模大300倍,影响几乎大3000倍。从2012年开始,AI算力的提升速度已超过摩尔定律的预测,平均每3-4个月翻一番。这就是人工智能的美好前景!所以我们正式开始我们今天的学习内容。
上次博客我们详细的讲解了,阈值分割和滤波的基本知识和相关操作。这里我们继续介绍计算机视觉中的图像形态学-本次相关知识我们分为两次博客进行讲解。我们现在就开始学习吧!
在这里插入图片描述

🌝图像形态学-腐蚀

其实这里说的腐蚀吧,我们都可以想象的到,日常生活中有太多腐蚀的例子了,我们肉眼看到的就有很多。那么我们先来看一下图像形态学中的腐蚀到底长什么样子。

在这里插入图片描述
在这里插入图片描述
💉💉

注意注意注意 1.图像形态学腐蚀操作针对的是二值图像。 2.两个输入对象。 一:二值图像 二:卷积核
二值图像我们不用过多介绍,之前我们已经介绍过了彩色装灰度,灰度转二值,包括阈值分割都已经把这个操作都讲解完成了。那么这个卷积核是什么呢?其实我们也讲过了在上一节但是我们在继续回顾以下它到底是什么!!!

在这里插入图片描述

我们设置了卷积核的大小,然后它遍历图像的每一个像素点,对应的腐蚀操作就是卷积核中的像素值,只要有一个为0也就是黑色,那么我就判定该像素新值为0,除非都为1,那么结果才为1。也就是说我把白色图像的边缘卷积核覆盖的部分全都给转变成了黑色。

在这里插入图片描述
🌔腐蚀操作函数介绍
dst = cv2.erode ( src , kernel , iterations )

  • src:原始图像
  • kernel:卷积核,这个卷积核需要我们单独设置
  • iterations:迭代次数,默认情况下,迭代次数是1,根据需要可以进行多次腐蚀操作。

卷积核的设定
kernel = np.ones((5,5),np.uint8)
🌔代码部分

import cv2
import numpy as np
o=cv2.imread("image\\erode.bmp",cv2.IMREAD_UNCHANGED)
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(o,kernel)
cv2.imshow("orriginal",o)
cv2.imshow("erosion",erosion)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
很明显的把周围的小刺刺全部都给消除了,把过滤掉了!

🌝图像形态学-膨胀

其实膨胀的操作在我理解就是腐蚀操作的逆向操作,说白了就是把图像按照一定的规则扩大一点。

在这里插入图片描述
在这里插入图片描述
1.图像被腐蚀后,去除了噪声,但是会压缩图像。
2.对腐蚀过的图像,进行膨胀处理,可以去除噪声,并保持原有形状。
在这里插入图片描述
同样我们需要注意的两点就是:第一膨胀操作也是针对于二值图像。然后就是卷积核的相关知识和操作。这里我们就不过多介绍。

卷积核遍历的时候只要有1,也就是白色像素值存在,那么我们就把该像素新值定为1。除非卷积核中所有的像素值都是0,才是0,也就是黑色。

在这里插入图片描述
🌔膨胀操作函数介绍
dst = cv2.dilate ( src , kernel , iterations )

  • src:原始图像
  • kernel:卷积核,这个卷积核需要我们单独设置
  • iterations:迭代次数,默认情况下,迭代次数是1,根据需要可以进行多次腐蚀操作。

卷积核的设定
kernel = np.ones((5,5),np.uint8)
🌔代码部分

import cv2
import numpy as np
o=cv2.imread("image\\dilate.bmp",cv2.IMREAD_UNCHANGED)
kernel = np.ones((5,5),np.uint8)
dilation = cv2.dilate(o,kernel,iterations=9)
cv2.imshow("orriginal",o)
cv2.imshow(“dilation",dilation)
cv2.waitKey()
cv2.destroyAllWindows()

这里我们让迭代次数为9,得到的结果就是:
在这里插入图片描述

🌝图像形态学-开运算

在进行膨胀操作的时候我们介绍到了这个:
1.图像被腐蚀后,去除了噪声,但是会压缩图像。
2.对腐蚀过的图像,进行膨胀处理,可以去除噪声,并保持原有形状。

*开运算(image)=膨胀(腐蚀(image))*

在这里插入图片描述
开运算就是先把图像进行腐蚀操作,然后进行膨胀操作的一个过程!
在这里插入图片描述

如果我们对于有噪声的图像单独的进行腐蚀操作,就会对图像进行压缩,如果我们想要恢复到原始图像就要进行相同程度上的膨胀,这个操作我们就成为开运算。

🌔开运算操作函数介绍
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

img:原始图像
cv2.MORPH_OPEN:表示进行开运算,相同的我们所知道的还有闭运算。
kernel:卷积核,同样我们对开运算的卷积核要进行设定
卷积核的设定
kernel = np.ones((5,5),np.uint8)
🌔代码部分

import cv2
import numpy as np
o=cv2.imread("image\\opening.bmp",cv2.IMREAD_UNCHANGED)
k=np.ones((5,5),np.uint8)
r=cv2.morphologyEx(o,cv2.MORPH_OPEN,k)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
这里我们隐隐约约还可以看到有小刺刺,这个时候我们把卷积核设置的大一些就可以完美的解决这个问题。
kernel = np.ones((10,10),np.uint8)
在这里插入图片描述

🌝图像形态学-闭运算

闭运算我们可以称之为开运算的逆操作,我们刚才讲到了开运算的操作是对图像先腐蚀在膨胀,有利于我们消除图像边缘的小刺刺。那么我们推理一下就可以知道闭运算肯定是先膨胀再腐蚀,那么它有什么好处呢?

在这里插入图片描述
很明显,他把我们图像内部的所有黑色气泡泡都给消除了!Wonderful!!
在这里插入图片描述

闭运算(image)=腐蚀(膨胀(image))

在这里插入图片描述
🌔闭运算操作函数介绍
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

img:原始图像
cv2.MORPH_CLOSE:表示进行闭运算,相同的我们所知道的还有开运算。
kernel:卷积核,同样我们对开运算的卷积核要进行设定
卷积核的设定
kernel = np.ones((5,5),np.uint8)
🌔代码部分

import cv2
import numpy as np
o=cv2.imread("image\\opening.bmp",cv2.IMREAD_UNCHANGED)
k=np.ones((5,5),np.uint8)
r=cv2.morphologyEx(o,cv2.MORPH_CLOSE,k)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
如果我们想要消除气泡效果好一点的话,把卷积核设置的在大一点!
k=np.ones((10,10),np.uint8)
在这里插入图片描述
在这里插入图片描述

📒文章适合于所有的相关人士进行学习📒
📒各位看官看完了之后不要立刻转身呀📒
📒期待三连关注小小博主加收藏📒
📒小小博主回关快 会给你意想不到的惊喜呀📒
各位老板动动小手给小弟点赞收藏一下,多多支持是我更新得动力!!!

  • 125
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 160
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃猫的鱼python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值