win10+Python3.7.3+OpenCV3.4.1入门学习(八)————8.5 闭运算

Python版本是Python3.7.3,OpenCV版本OpenCV.3.4.1,开发环境为PyCharm

闭运算是先膨胀、后腐蚀的运算,它有助于关闭前景物体内部的小孔,或去除物体上的小黑点,还可以将不同的前景图像进行连接。
例如,在下图中,通过先膨胀后腐蚀的闭运算去除了原始图像内部的小孔(内部闭合的闭运算),其中:

在这里插入图片描述
● 左图是原始图像。
● 中间的图是对原始图像进行膨胀的结果。
● 右图是对膨胀后的图像进行腐蚀的结果,即对原始图像进行闭运算的结果。
从图可以看到,原始图像在经过膨胀、腐蚀后,实现了闭合内部小孔的目的。除此以外,闭运算还可以实现前景图像的连接。例如,在图下中,利用闭运算将原本独立的两部分前景图像连接在一起,其中:

在这里插入图片描述
● 左图是原始图像。
● 中间的图是对原始图像进行膨胀的结果。
● 右图是对膨胀后的图像进行腐蚀的结果,即对原始图像进行闭运算的结果。
通过将函数cv2.morphologyEx()中操作类型参数op设置为“cv2.MORPH_CLOSE”,可以实现闭运算。其语法结构如下:

closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

eg1:使用函数cv2.morphologyEx()实现闭运算。
程序如下:

import cv2
import numpy as np
img1=cv2.imread("closing.bmp")
img2=cv2.imread("closing2.bmp")
k=np.ones((10,10),np.uint8)
r1=cv2.morphologyEx(img1,cv2.MORPH_CLOSE,k,iterations=3)
r2=cv2.morphologyEx(img2,cv2.MORPH_CLOSE,k,iterations=3)
cv2.imshow("img1",img1)
cv2.imshow("result1",r1)
cv2.imshow("img2",img2)
cv2.imshow("result2",r2)
cv2.waitKey()
cv2.destroyAllWindows()

在本例中,分别针对两幅不同的图像做了闭运算。运行程序,结果如图下所示,其中:
● 图( a )是原始图像img1。
● 图( b )是原始图像img1经过闭运算得到的图像r1。
● 图( c )是原始图像img2。
● 图( d )是原始图像img2经过闭运算得到的图像r2。

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值