✨博客主页:米开朗琪罗~
✨博主爱好:羽毛球
✨年轻人要:Living for the moment(活在当下)!
推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】
在【OpenCV-Python】:形态学操作之腐蚀与膨胀中介绍了形态学处理的两个基本操作:腐蚀与膨胀,本节带来基于这两个基本操作的其他形态学处理——开运算和闭运算。
先腐蚀后膨胀的操作称为开运算。
作用:消除细小物体、在窄区域分离物体、平滑大物体边界等。
使用函数: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()
下图为程序执行的结果,可以看到两块白色区域的中间结合部被断掉了!
先膨胀后腐蚀的操作称为闭运算。
作用:填充物体空洞、消除噪声、连接邻近物体、平滑边界等。
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()
下图为程序执行的结果,可以看到图中很多空心区域都进行了填充!