形态学之膨胀操作

2021-10-23  本文已影响0人  大龙10

《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05

第8章 形态学操作

8.2 膨胀

8.2.1 定义

  膨胀操作是形态学中另外一种基本的操作。膨胀操作和腐蚀操作的作用是相反的,膨胀操作能对图像的边界进行扩张。膨胀操作将与当前对象(前景)接触到的背景点合并到当前对象内,从而实现将图像的边界点向外扩张。如果图像内两个对象的距离较近,那么在膨胀的过程中,两个对象可能会连通在一起。膨胀操作对填补图像分割后图像内所存在的空白相当有帮助。二值图像的膨胀示例如图8-8所示。


图8-8 二值图像膨胀效果

同腐蚀过程一样,在膨胀过程中,也是使用一个结构元来逐个像素地扫描要被膨胀的图像,并根据结构元和待膨胀图像的关系来确定膨胀结果。

8.2.2 函数

在OpenCV内,采用函数cv2.dilate()实现对图像的膨胀操作,该函数的语法结构为:

dst=cv2.dilate(src,kernel)

8.2.3 程序示例

【例8.5】使用函数cv2.dilate()完成图像膨胀操作。

import cv2
import numpy as np
o=cv2.imread("dilation.bmp",cv2.IMREAD_UNCHANGED)
kernel = np.ones((9,9),np.uint8)
dilation = cv2.dilate(o,kernel)
cv2.imshow("original",o)
cv2.imshow("dilation",dilation)
cv2.waitKey()
cv2.destroyAllWindows()

8.2.4 结果

  在本例中,使用语句kernel=np.ones((9,9), np.uint8)生成9×9的核,来对原始图像进行膨胀操作。
  运行程序,结果如图8-12所示。其中,左图是原始图像,右图是膨胀处理结果。从图中可以看到,膨胀操作将原始图像“变粗”了。


图8-12 【例8.5】对应的膨胀结果
上一篇 下一篇

猜你喜欢

热点阅读