opencv图像的几种滤波操作

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

import cv2
import numpy as np

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

在这里插入图片描述

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

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

在这里插入图片描述

# 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()

在这里插入图片描述在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

发布了27 篇原创文章 · 获赞 20 · 访问量 1554

猜你喜欢

转载自blog.csdn.net/qq_39507748/article/details/104507053
今日推荐