凤仙郡天下杂谈|图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中,Python( 五 )
#encoding:utf-8importcv2importnumpyasnpimportmatplotlib.pyplotasplt#读取图片img=cv2.imread('test01.png')source=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#方框滤波result=cv2.boxFilter(source,-1,(5,5),normalize=1)#显示图形titles=['SourceImage','BoxFilterImage']images=[source,result]foriinxrange(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表示进行归一化处理 , 此时与均值滤波相同 , 输出结果如下图所示:
文章图片
下面是图像左上角处理前后的像素结果:
print(source[0:3,0:3,0])#[[115180106]#[8315272]#[555855]]print(result[0:3,0:3,0])#[[929078]#[928977]#[828072]]
如果省略参数normalize , 则默认是进行归一化处理 。 如果normalize=0则不进行归一化处理 , 像素值为周围像素之和 , 图像更多为白色 。
#encoding:utf-8importcv2importnumpyasnpimportmatplotlib.pyplotasplt#读取图片img=cv2.imread('test01.png')source=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#方框滤波result=cv2.boxFilter(source,-1,(5,5),normalize=0)#显示图形titles=['SourceImage','BoxFilterImage']images=[source,result]foriinxrange(2):plt.subplot(1,2,i+1),plt.imshow(images[i],'gray')plt.title(titles[i])plt.xticks([]),plt.yticks([])plt.show()
输出结果如下图所示:
文章图片
上图很多像素为白色 , 因为图像求和结果几乎都是255 。 如果设置的是2*2矩阵 , 只取四个像素结果要好些 。
result=cv2.boxFilter(source,-1,(2,2),normalize=0)
文章图片
文章图片
高斯滤波
为了克服简单局部平均法的弊端(图像模糊) , 目前已提出许多保持边缘、细节的局部平滑算法 。 它们的出发点都集中在如何选择邻域的大小、形状和方向、参数加平均及邻域各店的权重系数等 。
图像高斯平滑也是邻域平均的思想对图像进行平滑的一种方法 , 在图像高斯平滑中 , 对图像进行平均时 , 不同位置的像素被赋予了不同的权重 。 高斯平滑与简单平滑不同 , 它在对邻域内像素进行平均时 , 给予不同位置的像素不同的权值 , 下图的所示的3*3和5*5领域的高斯模板 。
文章图片
【凤仙郡天下杂谈|图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中,Python】高斯滤波让临近的像素具有更高的重要度 , 对周围像素计算加权平均值 , 较近的像素具有较大的权重值 。 如下图所示 , 中心位置权重最高为0.4 。
文章图片
推荐阅读
- 天下快谈|网友:这下川普要慌了,又一好消息传来!美国巨头突然“认怂”
- 凤仙郡天下杂谈|“百相生”开启社交4.0时代,寻找三观一致的你
- 少年一梦|绝招在手,天下我有,网络货运六大杀手锏
- 极速说天下|Pro尊享版来了?或改名“Ultra”立足中高端,本月发布,K30
- 潮车行天下|玛莎拉蒂海王星全新引擎震撼登场,首次引进F1尖端技术
- 搞机研究社|安兔兔发布6月份android手机性能榜:第一个榜单是骁龙865的天下
- 天下有警视频|却对中国无计可施?这一优点太重要了,为啥美国能搞垮四个强国
- 太平洋电脑网|荣耀X10Max、荣耀30青春版今天下午登场,潮流科技一触即发
- 「腾讯」腾讯VS老干妈的大瓜:假公章骗了企鹅;支付宝:希望天下无假章
- 腾讯■腾讯遭遇诈骗,支付宝:希望天下无假章!