opencv中如何对图像进行高斯滤波
时间: 2023-11-07 19:20:21 浏览: 43
在 OpenCV 中,可以使用 `cv2.GaussianBlur()` 函数对图像进行高斯滤波。该函数具有以下语法:
```python
cv2.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]]) → dst
```
其中,参数含义如下:
- `src`:输入图像,可以是单通道或多通道图像,数据类型为 `uint8`、`float32` 或 `float64`。
- `ksize`:高斯核的大小,通常为正奇数。如果 `ksize` 为 (w,h),则表示高斯核的大小为 w x h。
- `sigmaX`:高斯核在 X 方向上的标准差。
- `dst`:输出图像,与输入图像大小和通道数相同,数据类型为与输入图像相同。
- `sigmaY`:高斯核在 Y 方向上的标准差,如果未指定则默认与 `sigmaX` 相同。
- `borderType`:像素填充方式,默认为 `cv2.BORDER_DEFAULT`。
以下是一个简单的例子,展示了如何使用 `cv2.GaussianBlur()` 对图像进行高斯滤波:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 对图像进行高斯滤波
img_blur = cv2.GaussianBlur(img, (5, 5), 0)
# 显示原始图像和滤波后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Blurred Image', img_blur)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们使用 `cv2.imread()` 函数读取了一张图像,然后使用 `cv2.GaussianBlur()` 函数对其进行高斯滤波,得到了一个模糊的图像。最后,我们使用 `cv2.imshow()` 函数显示了原始图像和滤波后的图像。