python-opencv第七期:开运算与闭运算详解(上)

目录

概要:

正文部分:

概念介绍: 

何谓“开”与“闭”:

如何实现开运算与闭运算:

应用场景:

结语:


概要:

嗦粥汁所周知,在如今计算机视觉(Computer Vision short for CV)是人工智能与机器人技术发展的一个重大研究方向,而opencv作为一个专门为机计算机视觉编程提供技术与函数支持的第三方库,自然是一个需要重点研究的内容。

本期首先要谈谈什么是图像的开运算与闭运算以及开运算与闭运算都能用在什么地方。

话不多说,我是Kamen Black ,让我们开始今天的学习!

正文部分:

print("祝大家每天快乐,love and peace!")

概念介绍: 

— —初 窥 门 道

何谓“开”与“闭”:

在最开始,大家首先要对开运算与闭运算有个基础的概念理解。

其实开运算与闭运算,大家可以对应数学当中的开集和闭集— —开即意味着未连通,闭则意味着已连通,就好像门的开闭一样。

开门,意味着门的两个门板没有连通,对于外界是敞开的,对应“开”;

而闭门,意味着门的两个门板连通到了一起,对于外界是关闭的状态,对应“闭”。

门“开”与门“闭”

在数学当中,开集即意味着集合中的内容与边界的内容不连通,对于全集是开放的,闭集即意味着集合中的内容与边界的内容是连通着的,对于全集是闭合的;

在图像处理当中,开运算即意味着图像中的内容之间是不连通的,对于整幅图像是开放的状态,闭运算即意味着图像中的内容之间相互连通了,对于整幅图像是闭合的状态。

如何实现开运算与闭运算:

而我们知道,在数轴上的开集与闭集是通过小括号与中括号(小括号表示“开”,中括号表示“闭”)来表示的,而开运算与闭运算也是通过两个操作来实现的— —膨胀(dilate)腐蚀(erode)

为了形象地理解如何通过膨胀与腐蚀来完成图像内容的开运算与闭运算,我们首先来举一个简单的例子。

假设某个地区有两片相邻的湖泊,在它们之间有一条连接它们俩的天然河渠,河渠的宽度和湖泊的宽度相比要小很多,但是长度较大。

现在出现了两种可能的情况(都比较极端):

一种是— —

首先,这个地区经历了一场百年一遇的干旱,两个湖泊的面积都大幅缩减,只剩下各自中心点周围的一片区域,那条较窄的河渠更不用说,早就全部变成了水蒸气,两个湖泊间的连接自然;

然后,这个地区又经历了一场千年难遇的大雨,两个湖泊又渐渐恢复到了之前的规模,但是连接它们的那条河渠却就此消失了。最后的结果就是剩下了两片湖泊,互相不连通。

湖泊开运算的演示

另一种是— —

首先,这个地区经历了一场千年难遇的大雨,两个湖泊的面积都得到极大的扩张,以至于两个湖泊都大范围地连接到了一起,进而形成了一个湖泊,那条河渠自然也成为了湖泊的一部分;

然后,这个地区又经历了一场百年一遇的干旱,湖泊的面积又不可避免地变小,变成了之前两片湖泊之和的大小,但最后仍然还是保持着一个湖泊的形状。最后的结果就是剩下了一片大的湖泊,相当于之前的两片湖泊相互连通了。

湖泊闭运算的演示

在上面的例子当中,降雨就相当于膨胀操作干旱就相当于腐蚀操作

1、开运算的基本流程就是— —先腐蚀,再膨胀。就像两个湖泊先缩小,再扩大,最后形成两个独立不连通的湖泊一样,

图像中的内容先经过腐蚀操作,原本较细与较小的内容都会消失,只有较大的内容会呈现围绕中心点的范围减小,而不会消失;

再经过膨胀操作,留下来的内容会围绕中心点呈现范围增大的情况;

最后的结果就是,原本较细与较小的内容会被消除,而较大的内容会被保留下来

2、闭运算的基本流程就是— —先膨胀,再腐蚀。就像两个湖泊先扩大,再缩小,最后形成一个兼并的湖泊一样,

图像中的内容先经过膨胀操作,不仅原本较大的内容的面积会增大,较细与较小的内容也会增大,图像中所有的内容都会被扩大;

再经过腐蚀操作,图像中的内容都会出现缩小的情况,但是在上一步膨胀操作过程中连通的内容不会轻易地消失,而是会被保留下来;

最后的结果就是,原图像中的大多数内容都会被保留下来,而且更容易形成一个统一的整体

应用场景:

— —小 试 牛 刀

开运算和闭运算是二值图像处理中常用的两种形态学操作,都能保留图像中的大物体与边缘信息。它们可以通过对图像进行一系列的形态学变换,来改变图像的形状、大小、结构等特征,从而达到对图像进行分割、去噪、增强等目的。

分开来说:

开运算的主要作用是去除图像中的小孔洞和细小的物体。开运算可以用于图像去噪、分割、边缘检测等方面。

例如,在医学图像处理中,可以使用开运算来去除图像中的小斑点和噪声,从而更好地显示出医学图像中的重要信息。

闭运算的主要作用是填补图像中的小孔洞和连接细小的物体,达到平滑图像边缘的作用。闭运算可以用于图像增强、分割、形态学重建等方面。

例如,在数字图像处理中,可以使用闭运算来填补数字图像中的小孔洞和连接数字,从而更好地显示出数字图像中的数字信息。

综合两者:

我们可以做到以下几点:

  1. 去除图像中的噪声:在图像处理中,常常会出现一些噪声点,这些噪声点会影响图像的质量和准确性。使用开运算可以去除这些噪声点,使得图像更加清晰和准确。

  2. 分离图像中的物体:在计算机视觉和模式识别中,常常需要对图像中的物体进行分离和识别。使用开运算可以去除图像中的小物体和细节,使得图像中的大物体更加突出和明显。

  3. 平滑图像边缘:在图像处理中,常常需要对图像进行平滑处理,使得图像更加自然和美观。使用闭运算可以平滑图像边缘,使得图像更加平滑和自然。

  4. 填补图像中的空洞和断裂:在图像处理中,常常会出现一些空洞和断裂,这些空洞和断裂会影响图像的质量和准确性。使用闭运算可以填补这些空洞和断裂,使得图像更加完整和准确。

结语:

在今天的文章当中,我们学习了什么是图像的开运算与闭运算,以及它们的应用场景。相信大家一定对开运算与闭运算有了一定的了解与想法,但是受限于篇幅,

目前我们也只能先简单带大家了解一下开运算与闭运算的概念与用处,而在下一期的文章当中,我将向大家介绍怎么使用python-opencv中的函数实现开运算与闭运算,以及进行我们“惯常”的实例操作,请大家拭目以待。

好了以上就是所有的内容,希望大家多多关注点赞收藏,这对我有很大的帮助。谢谢大家了!

 好了,这里是Kamen Black 。祝国康家安,大家下次再见喽!!!溜溜球~~

  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
### 回答1: 错误:无法找到满足要求的版本 python-opencv(来自版本:none)错误:找不到匹配的发行版 python-opencv。 这个错误提示意味着您尝试安装名为 python-opencv 的软件包,但找不到与您的 Python 版本兼容的版本。建议您检查您的 Python 版本和软件包的兼容性,并尝试使用其他版本或其他软件包。 ### 回答2: 这是一个pip安装报错,意思是pyhton-opencv这个库的版本不符合要求,或者是没有符合要求的版本可用。就像购物时去商店里找某个商品,如果这家店没有你想要的品牌或者款式,你就无法购买了一样。 出现这种情况,我们需要检查一下是否输入了正确的库名称和版本号,或者更改一下版本号看看是否能够找到匹配的版本。如果还是无法找到匹配的版本,就需要考虑是不是依赖关系的问题,例如python-opencv这个库需要依赖另一个库,可能是这个依赖库的版本不满足所需要求,导致无法安装。 针对这种情况,我们可以尝试升级pip、减少依赖库的版本或者手动下载安装所需的库。如果实在无法解决,还可以到对应的官方网站或者开源社区寻求帮助,寻找问题的解决方案。 在解决此类问题时,我们应该在提高解决问题能力的同时,也要通过良好的代码编写规范和注释规范来减少问题的发生概率,提高代码的可维护性和可读性。 ### 回答3: 这个错误提示表示当前的Python环境无法找到满足要求的opencv库的安装版本。这可能是由于版本不匹配或者缺少依赖库等原因造成的。 解决这个问题需要考虑以下几个方面: 1. 确认Python版本是否与opencv库要求的Python版本匹配。 首先要查看系统安装的Python版本是否符合opencv库的要求,通常opencv库要求Python版本为2.7或3.5以上。如果当前Python版本过低,可以考虑升级Python版本,或者安装相应版本的opencv库。 2. 确认是否安装了opencv库的依赖库。 opencv库有一些依赖库,例如numpy、matplotlib等,如果这些依赖库没有安装或者版本不匹配,也会导致安装失败。可以通过pip命令安装这些依赖库,例如: pip install numpy matplotlib 3. 尝试使用其他方式安装opencv库。 如果以上方法都没有解决问题,可以考虑尝试其他方式安装opencv库,例如使用源码安装、使用conda安装等。具体方法可以参考相关教程或者官方文档。 总之,解决这个问题需要综合考虑多方面的因素,包括Python版本、依赖库、安装方式等。如果遇到问题可以查看相关错误提示,并参考相关资料进行排查。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Kamen Black君

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

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

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

打赏作者

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

抵扣说明:

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

余额充值