均值滤波器的使用方法,均值加权滤波器使用方法

首页 > 企业招商 > 作者:YD1662023-12-30 22:51:46

代码如下所示:

#encoding:utf-8import cv2 import numpy as np import matplotlib.pyplot as plt
#读取图片img = cv2.imread('test01.png')source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#方框滤波result = cv2.boxFilter(source, -1, (5,5), normalize=1)
#显示图形titles = ['Source Image', 'BoxFilter Image'] images = [source, result] for i in xrange(2): plt.subplot(1,2,i 1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([]) plt.show

代码中使用5*5的核,normalize=1表示进行归一化处理,此时与均值滤波相同,输出结果如下图所示:

均值滤波器的使用方法,均值加权滤波器使用方法(17)

下面是图像左上角处理前后的像素结果:

print(source[0:3, 0:3, 0])#[[115 180 106]# [ 83 152 72]# [ 55 58 55]]print(result[0:3, 0:3, 0])#[[92 90 78]# [92 89 77]# [82 80 72]]

如果省略参数normalize,则默认是进行归一化处理。如果normalize=0则不进行归一化处理,像素值为周围像素之和,图像更多为白色。

#encoding:utf-8import cv2 import numpy as np import matplotlib.pyplot as plt
#读取图片img = cv2.imread('test01.png')source = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#方框滤波result = cv2.boxFilter(source, -1, (5,5), normalize=0)
#显示图形titles = ['Source Image', 'BoxFilter Image'] images = [source, result] for i in xrange(2): plt.subplot(1,2,i 1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]),plt.yticks([]) plt.show

输出结果如下图所示:

均值滤波器的使用方法,均值加权滤波器使用方法(18)

上图很多像素为白色,因为图像求和结果几乎都是255。如果设置的是2*2矩阵,只取四个像素结果要好些。

result = cv2.boxFilter(source, -1, (2,2), normalize=0)

均值滤波器的使用方法,均值加权滤波器使用方法(19)

均值滤波器的使用方法,均值加权滤波器使用方法(20)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.