opencvpython滤波代码
时间: 2024-08-13 13:02:13 浏览: 45
top-hat.zip
OpenCV(Open Source Computer Vision Library)是一个广泛使用的计算机视觉库,它在Python中提供了一系列强大的图像处理功能,包括滤波操作。滤波是一种常见的图像处理技术,用于减少噪声、平滑图像或提取特征等。
下面是一个简单的OpenCV Python滤波的例子,使用高斯滤波器来平滑图像:
```python
import cv2
import numpy as np
# 加载图片
img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
# 定义高斯核大小(这里设为5x5像素)
kernel_size = (5, 5)
sigma = 0 # 如果不知道标准差,可以设置为0,此时会自动计算
# 创建高斯核
gaussian_kernel = cv2.getGaussianKernel(kernel_size, sigma)
# 将高斯核转换为浮点型并求和得到卷积核
gaussian_kernel = gaussian_kernel * gaussian_kernel.T
gaussian_kernel = gaussian_kernel / np.sum(gaussian_kernel)
# 使用卷积核对图像进行滤波
blurred_img = cv2.filter2D(img, -1, gaussian_kernel)
# 显示原始图像和平滑后的图像
cv2.imshow("Original Image", img)
cv2.imshow("Blurred Image", blurred_img)
cv2.waitKey(0) # 等待用户按键
cv2.destroyAllWindows()
```
在这个例子中,`getGaussianKernel`函数生成了一个高斯核,`filter2D`函数则用于实际的滤波操作。`-1`作为第二个参数表示我们在使用列优先模式应用核。
阅读全文