版权声明:本文系作者原创,未经允许,禁止转载。 https://blog.csdn.net/qq_27261889/article/details/80822270
滤波算法主要包括均值滤波,高斯滤波,中值滤波和双边滤波。
每种算法都有自己的特点,建议从原理上了解每种算法的优缺点。上图给出简洁版的总结。
以下是代码:
import numpy as np
import cv2
import matplotlib.pyplot as plt
######## 四个不同的滤波器 #########
img = cv2.imread('cat.jpg')
# 均值滤波
img_mean = cv2.blur(img, (5,5))
# 高斯滤波
img_Guassian = cv2.GaussianBlur(img,(5,5),0)
# 中值滤波
img_median = cv2.medianBlur(img, 5)
# 双边滤波
img_bilater = cv2.bilateralFilter(img,9,75,75)
# 展示不同的图片
titles = ['srcImg','mean', 'Gaussian', 'median', 'bilateral']
imgs = [img, img_mean, img_Guassian, img_median, img_bilater]
for i in range(5):
plt.subplot(2,3,i+1)#注意,这和matlab中类似,没有0,数组下标从1开始
plt.imshow(imgs[i])
plt.title(titles[i])
plt.show()
运行结果展示: