高斯滤波

2021-10-18  本文已影响0人  大龙10

《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05

第7章 图像平滑处理

7.3 高斯滤波

  在进行均值滤波和方框滤波时,其邻域内每个像素的权重是相等的。在高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重的和。

7.3.1 基本原理

  在高斯滤波中,卷积核中的值不再都是1。例如,一个3×3的卷积核可能如图7-20所示:


图7-20 高斯滤波卷积核示例

在图7-21中,针对最左侧的图像内第4行第3列位置上像素值为226的像素点进行高斯卷积,其运算规则为将该点邻域内的像素点按照不同的权重计算和。


图7-21 高斯卷积示例

在实际计算时,使用的卷积核如图7-22中的卷积核所示。


图7-22 实际计算中的卷积核
使用图7-22中的卷积核,针对第4行第3列位置上的像素值为226的像素点进行高斯滤波处理,计算方式为:

在实际使用中,高斯滤波使用的可能是不同大小的卷积核。例如,图7-23中分别是3×3、5×5、7×7大小的卷积核。在高斯滤波中,核的宽度和高度可以不相同,但是它们都必须是奇数。

7.3.2 函数语法

在OpenCV中,实现高斯滤波的函数是cv2.GaussianBlur(),该函数的语法格式是:

dst=cv2.GaussianBlur(src,ksize,sigmaX,sigmaY,borderType)

式中:

7.3.3 程序示例

【例7.6】对噪声图像进行高斯滤波,显示滤波的结果。

import cv2
o=cv2.imread("image\\lenaNoise.png")
r=cv2.GaussianBlur(o,(5,5),0,0)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

7.3.4 结果

图7-26 高斯滤波示例
上一篇 下一篇

猜你喜欢

热点阅读