在采集图像过程中,通常会出现各种各样的噪声,去除噪声,显示图像信息最有效的办法就是进行图像滤波操作。
均值滤波,顾名思义,就是取均值作为目标像素点的灰度值,具体操作是,选定滤波模板,遍历图像,用卷积覆盖区域内的所有像素点灰度值之和的平均值来代替中心点的灰度值。
算法简单,计算速度快,但是会模糊图像,图像细节信息丢失。
代码:
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plot
img=cv.imread(r"F:\z\2\u-net-vgg\0559.jpg",)
#均值滤波
img1=cv.blur(img,[5,5])
plot.imshow(img1[:,:,::-1])
plot.show()
高斯滤波适用于处理高斯噪声,具体做法是先确定权重矩阵,遍历图像,覆盖区域内,高斯权重与图像对应点的灰度值相乘,最后将所有结果相加,则是中心点的灰度值。
代码:
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plot
img=cv.imread(r"F:\zhouwang\2\u-net-vgg\0559.jpg",)
#高斯滤波
img2=cv.GaussianBlur(img,[5,5],1)
plot.imshow(img2[:,:,::-1])
plot.show()
中值滤波,顾名思义,在用模板进行图像遍历,将所有像素点的像素值进行筛选,选取中间值作为中心点的灰度值, 可以有效处理椒盐噪声。
代码:
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plot
img=cv.imread(r"F:\zhouwang\2\u-net-vgg\0559.jpg",)
#中值滤波
img3=cv.medianBlur(img,3)
plot.imshow(img3[:,:,::-1])
plot.show()