【OpenCV-Python】:形态学操作之开运算与闭运算

✨博客主页:米开朗琪罗~
✨博主爱好:羽毛球
✨年轻人要:Living for the moment(活在当下)!
推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】

目录

  • 一、引言
  • 二、开运算
    • 2.1 什么是开运算
    • 2.2 程序编写及结果可视化
  • 三、闭运算
    • 3.1 什么是闭运算
    • 3.2 程序编写及结果可视化

一、引言

在【OpenCV-Python】:形态学操作之腐蚀与膨胀中介绍了形态学处理的两个基本操作:腐蚀与膨胀,本节带来基于这两个基本操作的其他形态学处理——开运算和闭运算。
【OpenCV-Python】:形态学操作之开运算与闭运算_第1张图片

二、开运算

2.1 什么是开运算

先腐蚀后膨胀的操作称为开运算。

作用:消除细小物体、在窄区域分离物体、平滑大物体边界等。

2.2 程序编写及结果可视化

使用函数:dst = cv2.morphologyEx(src,cv2.MORPH_OPEN,kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

函数中的参数——cv2.MORPH_OPEN决定开闭运算。

import cv2
import numpy as np


ori = cv2.imread(r"C:\Users\Lenovo\Desktop\original.jpg")

k = np.ones((10, 10), np.uint8)

opening = cv2.morphologyEx(ori, cv2.MORPH_OPEN,k)       # 开运算

cv2.imshow("original", ori)
cv2.imshow("opening", opening)
cv2.imwrite(r'C:\Users\Lenovo\Desktop\opening.jpg', opening)
cv2.waitKey()

下图为程序执行的结果,可以看到两块白色区域的中间结合部被断掉了!
【OpenCV-Python】:形态学操作之开运算与闭运算_第2张图片

三、闭运算

3.1 什么是闭运算

先膨胀后腐蚀的操作称为闭运算。

作用:填充物体空洞、消除噪声、连接邻近物体、平滑边界等。

3.2 程序编写及结果可视化

import cv2
import numpy as np


ori = cv2.imread(r"C:\Users\Lenovo\Desktop\original.jpg")

k1 = np.ones((8, 8), np.uint8)
k2 = np.ones((15, 15), np.uint8)

closing1 = cv2.morphologyEx(ori, cv2.MORPH_CLOSE, k1)
closing2 = cv2.morphologyEx(ori, cv2.MORPH_CLOSE, k2)

cv2.imshow("original", ori)
cv2.imshow("closing1", closing1)
cv2.imshow("closing2", closing2)
cv2.imwrite(r'C:\Users\Lenovo\Desktop\closing1.jpg', closing1)
cv2.imwrite(r'C:\Users\Lenovo\Desktop\closing2.jpg', closing2)
cv2.waitKey()

下图为程序执行的结果,可以看到图中很多空心区域都进行了填充!

【OpenCV-Python】:形态学操作之开运算与闭运算_第3张图片

你可能感兴趣的:(图像处理,python,图像处理,opencv)