目录
1. 形态学平滑
之前介绍过,开运算会删除灰度图像中的亮点,闭运算会删除灰度图像中的暗点。
而结构元的作用是删除这些点的比例或者说个数,如果结构元较大的话,那么在开运算中,结构元从下往上推的时候,就会提前的被卡住,所以被删除亮点的个数就会更多。
所以可以通过开运算去除salt噪声,然后对开运算的结果闭运算去除pepper噪声
代码如下:
import numpy as np
import cv2
def noise(img): # 添加椒盐噪声
for i in range(2000):
x = np.random.randint(0,img.shape[0])
y = np.random.randint(0,img.shape[1])
img[x][y] = np.random.randint(0,2) * 255 # 随机产生0 255 椒盐噪声
return img.astype(np.uint8)
img = cv2.imread('./flower.jpg',0)
img_noise = noise(img.copy()) # 产生噪声图像
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))
dst_open = cv2.morphologyEx(img_noise,cv2.MORPH_OPEN,kernel) # 开