opencv利用双边滤波去除高斯噪声并显示
时间: 2024-10-17 19:04:36 浏览: 34
图像滤波处理.rar_opencv_racejgn_中值滤波_双边滤波_高斯滤波
OpenCV是一个广泛使用的计算机视觉库,其中包含了许多图像处理函数,包括双边滤波(Bilateral Filter)。双边滤波是一种非局部平滑算法,它既能保留图像边缘细节又能有效抑制高斯噪声。
使用OpenCV进行双边滤波的步骤大致如下:
1. **导入所需库**:
```python
import cv2
import numpy as np
```
2. **读取输入图像**:
```python
img = cv2.imread('input_image.jpg', 0) # 读灰度图像,如果是彩色就用cv2.imread()即可
```
3. **设置滤波参数**:
- `diameter`:滤波半径,控制平滑程度。
- `sigma_color`:颜色空间的方差,影响噪声抑制效果。
- `sigma_space`:空间域的方差,影响边缘保持。
```python
diameter = 5
sigma_color = 75
sigma_space = 75
```
4. **应用双边滤波**:
```python
filtered_img = cv2.bilateralFilter(img, diameter, sigma_color, sigma_space)
```
5. **显示原始和处理后的图像**:
```python
cv2.imshow("Original Image", img)
cv2.imshow("Filtered Image", filtered_img)
```
6. **等待用户按键并关闭窗口**:
```python
key = cv2.waitKey(0)
if key == ord('q'):
break
cv2.destroyAllWindows()
```
阅读全文