opencv对一幅图像进行均值滤波、方框滤波、高斯滤波、中值滤波、双边滤波和2D卷积滤波代码
时间: 2023-10-20 12:14:47 浏览: 131
以下是对一幅图像进行均值滤波、方框滤波、高斯滤波、中值滤波、双边滤波和2D卷积滤波的代码示例,使用了OpenCV库。
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 均值滤波
mean = cv2.blur(img, (5, 5))
# 方框滤波
box = cv2.boxFilter(img, -1, (5, 5))
# 高斯滤波
gaussian = cv2.GaussianBlur(img, (5, 5), 0)
# 中值滤波
median = cv2.medianBlur(img, 5)
# 双边滤波
bilateral = cv2.bilateralFilter(img, 9, 75, 75)
# 2D卷积滤波
kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]])
convolution = cv2.filter2D(img, -1, kernel)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Mean Filtered Image', mean)
cv2.imshow('Box Filtered Image', box)
cv2.imshow('Gaussian Filtered Image', gaussian)
cv2.imshow('Median Filtered Image', median)
cv2.imshow('Bilateral Filtered Image', bilateral)
cv2.imshow('2D Convolution Filtered Image', convolution)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意,以上代码中使用的kernel矩阵是一个简单的锐化滤波器,可根据需要进行修改。
阅读全文