cv2.GaussianBlur的参数中的sigma
时间: 2025-01-03 07:27:27 浏览: 11
### CV2.GaussianBlur中的Sigma参数详解
在`cv2.GaussianBlur()`函数中,`sigmaX`和`sigmaY`代表高斯核在X轴和Y轴方向上的标准偏差。这两个参数决定了应用于图像的模糊程度以及如何加权邻近像素的影响。
当仅指定了`sigmaX`而未指定`sigmaY`时,后者会被自动设为与前者相等[^1]。这意味着如果只提供了一个单一的σ值作为`sigmaX`,那么该值也会被用来定义垂直维度上的扩散度量。对于二维空间内的各向同性情况来说这是合理的做法,因为这样可以在水平和竖直两个方向上施加均匀一致的效果。
然而,在某些应用场景下可能希望沿不同坐标轴赋予不同的平滑强度,则可以通过显式设定两者来达成目的。值得注意的是,若二者皆置零,则会依据内定逻辑基于给定窗口尺寸自动生成合适的σ值[^2]。
下面给出一段Python代码片段展示如何利用这些参数:
```python
import cv2
import numpy as np
# 创建一个简单的黑白渐变图测试用例
img = np.linspace(0, 255, num=64 * 64).reshape((64, 64)).astype(np.uint8)
# 应用带有特定sigma值的高斯模糊
blurred_img = cv2.GaussianBlur(img, (7, 7), sigmaX=3, sigmaY=3)
# 显示原始图片和处理后的对比结果
cv2.imshow('Original Image', img)
cv2.imshow('Blurred Image with Sigma=3', blurred_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
此段程序创建了一张线性灰阶变化的小型图像,并对其执行了具有固定σ值(这里取作3)的高斯滤波操作。通过调整这个数值可以看到不同程度下的视觉差异。
阅读全文