使用维纳滤波复原运动模糊图像的python代码
时间: 2023-11-12 21:00:05 浏览: 360
运动模糊图像的维纳滤波复原研究
以下是使用维纳滤波复原运动模糊图像的Python代码:
```python
import numpy as np
import cv2
# 读取模糊图像
img = cv2.imread('blurry_image.jpg', 0)
# 设置运动模糊的参数
size = 15 # 运动模糊的长度
angle = 30 # 运动模糊的角度
kernel = np.zeros((size, size), dtype=np.float32)
kernel[int((size-1)/2), :] = np.ones(size, dtype=np.float32)
rotation_matrix = cv2.getRotationMatrix2D((int((size-1)/2), int((size-1)/2)), angle, 1)
kernel = cv2.warpAffine(kernel, rotation_matrix, (size, size))
# 对模糊图像进行维纳滤波
deblurred_img = cv2.filter2D(img, -1, np.linalg.pinv(kernel))
# 显示原始图像和复原图像
cv2.imshow('Original Image', img)
cv2.imshow('Deblurred Image', deblurred_img)
cv2.waitKey()
cv2.destroyAllWindows()
```
注意:在运行代码之前,请将`blurry_image.jpg`替换为您自己的模糊图像,并根据需要调整运动模糊的参数。此外,本代码使用的是最简单的运动模糊,如果您想使用其他类型的模糊,需要相应地更改卷积核。
阅读全文