开运算概念
闭运算概念
API
cv.morphologyEx(img , op, kernal)
参数:
- img ;要处理的图像
- op : 处理方式 : 若进行开运算,则设为cv.MORPH_OPEN ,若进行闭运算,则设为cv.MORPH_CLOSE
- Kernel :核结构
代码实现10*10的核结构对卷积进行开闭运算的实现
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
#读取图像
img1 = cv.imread("aa.jpg")
img2 = cv.imread("lena.png")
#创建核结构
kernel = np.ones((10,10),np.uint8)
#图像的开闭运算
cvopen = cv.morphologyEx(img1,cv.MORPH_OPEN,kernel) #开运算(先腐蚀,再膨胀,去除噪点)
cvclose = cv.morphologyEx(img2,cv.MORPH_CLOSE,kernel) #闭运算(先膨胀,再腐蚀,去除孔洞)
#图像展示
fig,axes = plt.subplots(nrows=2,ncols=2,figsize=(6,6),dpi=100)
axes[0,0].imshow(img1[:,:,::-1])
axes[0,0].set_title("原图-aa")
axes[0,1].imshow(cvopen[:,:,::-1])
axes[0,1].set_title("开运算-aa")
axes[1,0].imshow(img2[:,:,::-1])
axes[1,0].set_title("原图-lena")
axes[1,1].imshow(cvclose[:,:,::-1])
axes[1,1].set_title("闭运算-lena")
plt.show()