GaussianBlur

函数功能

GaussianBlur函数用于对图像进行高斯模糊,主要用于平滑图像、去除噪声和细节。通过应用高斯滤波,图像中的边缘和细节会被柔化,适合在边缘检测和图像预处理等场景中使用。

函数接口

1
cv2.GaussianBlur(src, ksize, sigmaX, sigmaY=0, borderType=cv2.BORDER_DEFAULT)

参数

参数名

描述

取值范围

输入/输出

src

输入图像。

非空

输入

ksize

高斯核的大小,必须是正奇数,如(3, 3)或(5, 5)。

(width, height),其中width和height均为大于1的奇数

输入

sigmaX

X方向的高斯标准差,控制模糊程度。

(0, inf)

输入

sigmaY

Y方向的高斯标准差,默认为0(自动计算与sigmaX相同)。

(0, inf)

输入

borderType

边界模式,默认为cv2.BORDER_DEFAULT,用于处理边界像素。

cv2.BORDER_DEFAULT、cv2.BORDER_REPLICATE、cv2.BORDER_REFLECT、cv2.BORDER_REFLECT_101、cv2.BORDER_WRAP、cv2.BORDER_CONSTANT等

输入

返回值

错误码

错误码

描述

INVALID_PARAM_MSG

参数“src”存在空指针。

NOT_SUPPORT_MSG

不是“borderType”支持的模式,ksize尺寸不对,src不是unit8图像。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import numpy as np
import cv2

# 创建一个5x5的简单图像 
src = np.array([[0, 0, 0, 0, 0],
                [0, 1, 1, 1, 0], 
                [0, 1, 0, 1, 0],
                [0, 1, 1, 1, 0],
                [0, 0, 0, 0, 0]], dtype=np.uint8)

# 定义高斯模糊核的大小 
ksize = (3, 3)  

# 定义高斯模糊核的标准差 
sigmaX = 1 
sigmaY = 1

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

print(dst)

运行结果:

1
2
3
4
5
[[0 0 1 0 0]
 [0 0 1 0 0]
 [1 1 1 1 1]
 [0 0 1 0 0]
 [0 0 1 0 0]]