OpenCV空域滤波
时间: 2024-12-30 10:30:06 浏览: 11
### OpenCV 空域滤波实现方法及示例
#### 1. 高斯滤波
高斯滤波是一种常见的平滑技术,用于减少图像中的噪声。通过应用二维卷积核来计算像素的新值。
```python
import cv2 as cv
import numpy as np
# 加载图像
image = cv.imread('path_to_image.jpg')
# 应用高斯滤波
gaussian_blur = cv.GaussianBlur(image, (5, 5), 0)
# 显示原始图像和处理后的图像
cv.imshow('Original Image', image)
cv.imshow('Gaussian Blurred Image', gaussian_blur)
cv.waitKey(0)
cv.destroyAllWindows()
```
此代码片段展示了如何加载一张图片并对其执行高斯模糊操作[^1]。
#### 2. 中值滤波
中值滤波对于去除椒盐噪声特别有效。它的工作原理是从邻近区域选取中间值作为新像素值。
```python
# 应用中值滤波
median_blur = cv.medianBlur(image, 5)
# 显示结果
cv.imshow('Median Blurred Image', median_blur)
cv.waitKey(0)
cv.destroyAllWindows()
```
这段程序说明了怎样利用 `medianBlur` 函数来进行中值过滤[^2]。
#### 3. 双边滤波
双边滤波可以在保持边缘的同时平滑图像。该算法不仅考虑空间距离还考虑到颜色差异。
```python
def bi_demo(image):
bilateral_filter = cv.bilateralFilter(image, d=9, sigmaColor=75, sigmaSpace=75)
# 展示效果对比
cv.imshow('Bilateral Filtered Image', bilateral_filter)
cv.waitKey(0)
cv.destroyAllWindows()
bi_demo(image)
```
上述例子定义了一个名为 `bi_demo` 的函数,用来展示双边滤波的效果.
阅读全文