pyhthon opencv2 双边滤波
时间: 2023-11-21 18:17:56 浏览: 83
双边滤波(Bilateral Filter)是一种非线性滤波技术,能够在保留边缘信息的同时对图像进行平滑处理。在 OpenCV 中,可以使用 cv2.bilateralFilter() 函数来实现双边滤波。该函数的语法如下:
```
dst = cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]])
```
其中,参数说明如下:
- src:原始图像,可以是任何维度的图像,但必须是单通道或三通道图像。
- dst:输出图像,与原始图像大小、深度、通道数相同。
- d:代表双边滤波的直径,一般设置为 5 或 7。
- sigmaColor:颜色空间滤波器的权重,一般设置为 50。
- sigmaSpace:坐标空间滤波器的权重,一般设置为 50。
- borderType:边界填充类型,一般设置为 cv2.BORDER_DEFAULT。
下面是一个示例代码:
```python
import cv2
img = cv2.imread('lena.jpg')
img_filtered = cv2.bilateralFilter(img, 5, 50, 50)
cv2.imshow('Original Image', img)
cv2.imshow('Filtered Image', img_filtered)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码中,我们首先读取了一张图像,然后对其进行双边滤波处理,并将原始图像和处理后的图像分别显示出来。
阅读全文