用opencv进行图像cat的理想低通滤波器图像平滑代码
时间: 2023-07-24 16:06:09 浏览: 148
以下是使用OpenCV进行图像平滑的代码示例:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 定义低通滤波器核
kernel_size = 5
kernel = cv2.getGaussianKernel(kernel_size, 0)
# 应用低通滤波器
smoothed_img = cv2.filter2D(img, -1, kernel)
# 显示原始图像和平滑后的图像
cv2.imshow("Original Image", img)
cv2.imshow("Smoothed Image", smoothed_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码中使用`cv2.getGaussianKernel()`函数生成了一个高斯核,然后使用`cv2.filter2D()`函数将其应用于输入图像。`kernel_size`参数定义了核的大小,越大的核会导致更强的平滑效果。在这里我们选择了一个大小为5的核。
最后,使用`cv2.imshow()`函数显示原始图像和平滑后的图像,并使用`cv2.waitKey()`等待用户按下任意键关闭窗口。
相关问题
用opencv对图像进行梯形低通滤波器图像平滑代码
下面是用OpenCV实现梯形低通滤波器图像平滑的代码:
```python
import cv2
import numpy as np
img = cv2.imread('input.jpg') # 读入图片
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换为灰度图像
# 定义梯形低通滤波器
kernel = np.array([[-1, -1, -1, -1, -1],
[-1, 2, 2, 2, -1],
[-1, 2, 8, 2, -1],
[-1, 2, 2, 2, -1],
[-1, -1, -1, -1, -1]]) / 8.0
# 使用滤波器进行图像平滑
img_smooth = cv2.filter2D(img_gray, -1, kernel)
cv2.imshow('Input', img_gray)
cv2.imshow('Output', img_smooth)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这里定义了一个$5\times5$的梯形低通滤波器,然后使用`cv2.filter2D()`函数对灰度图像进行滤波,得到平滑后的图像。最后将原图和平滑后的图像显示出来。
opencv低通滤波器python代码
以下是利用OpenCV实现低通滤波器的Python代码:
```python
import cv2
import numpy as np
# 加载图像
img = cv2.imread('test.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 定义低通滤波器内核
kernel = np.ones((5,5),np.float32)/25
# 应用低通滤波器
dst = cv2.filter2D(gray,-1,kernel)
# 显示图像
cv2.imshow('Original',gray)
cv2.imshow('Low Pass Filter',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码将图像转换为灰度图像,然后定义一个5x5的低通滤波器内核。应用内核后,将处理后的图像显示在屏幕上。
阅读全文