Several image filtering operation opencv

In the read image, there will be some acoustic point impatient, such as some white noise, so we need to denoise operations; such as mean filter, block filtering, Gaussian filtering and median filtering. Here's to four filtering methods show how specific operations and post-filtering effect

import cv2
import numpy as np

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

Here Insert Picture Description

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

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

Here Insert Picture Description

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

Here Insert Picture DescriptionHere Insert Picture Description

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

Here Insert Picture Description

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

Here Insert Picture Description

Published 27 original articles · won praise 20 · views 1554

Guess you like

Origin blog.csdn.net/qq_39507748/article/details/104507053