opencv学习笔记八:图像的几种滤波操作

在图像的读取中,会存在一些躁声点,如一些白噪声,因此我们需要进行去噪操作;比如均值滤波、方框滤波、高斯滤波以及中值滤波。下面就以这四种滤波方式展示一下具体如何操作以及滤波后的效果

import cv2
import numpy as np

# 1.图片中存在一些噪音点
img = cv2.imread('lenaNoise.png')
cv2.imshow('original', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv学习笔记八:图像的几种滤波操作_第1张图片

# 2. cv2.blur 使用均值滤波,即当对一个值进行滤波时,使用当前值与周围8个值之和,取平均做为当前值

mean = cv2.blur(img, (3, 3))
cv2.imshow('mean', mean)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv学习笔记八:图像的几种滤波操作_第2张图片

# 3. cv2.boxFilter 表示进行方框滤波,normalize=True时和均值滤波是等价的
box = cv2.boxFilter(img, -1, (3, 3), normalize=True)
cv2.imshow('box', box)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 当normalize=False 表示对加和后的9个点,不进行求平均的操作,如果加和后的值大于255,使用255表示
box_1 = cv2.boxFilter(img, -1, (3, 3), normalize=False)
cv2.imshow('box_1', box_1)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv学习笔记八:图像的几种滤波操作_第3张图片opencv学习笔记八:图像的几种滤波操作_第4张图片

# 4. cv2.GaussianBlur 根据设置的均方差σ,利用高斯公式
#对周围的点进行加权求平均
gaussian = cv2.GaussianBlur(img, (5, 5), 1)
cv2.imshow('gaussian', gaussian)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv学习笔记八:图像的几种滤波操作_第5张图片

# 5. cv2.medianBlur #将9个数据从小到大排列,取中间值作为当前值
median = cv2.medianBlur(img, 3)
cv2.imshow('median', median)
cv2.waitKey(0)
cv2.destroyAllWindows()

opencv学习笔记八:图像的几种滤波操作_第6张图片

你可能感兴趣的:(opencv学习笔记八:图像的几种滤波操作)