对图像进行动态模糊处理然后使用维纳滤波处理该图像matlab代码
时间: 2023-08-10 20:02:25 浏览: 132
基于维纳滤波的图像去运动模糊算法附matlab代码.zip
以下是对图像进行动态模糊处理然后使用维纳滤波处理该图像的 Matlab 代码:
```matlab
% 读取图像
img = imread('image.jpg');
% 模糊核大小
ksize = 11;
% 随机生成运动模糊方向和距离
angle = randi([0 180]);
distance = randi([5 20]);
% 生成运动模糊核
motion_kernel = fspecial('motion', distance, angle);
% 进行运动模糊处理
blurred_img = imfilter(img, motion_kernel, 'conv', 'circular');
% 添加高斯噪声
blurred_img = imnoise(blurred_img, 'gaussian', 0, 0.0001);
% 维纳滤波处理
wnr_img = deconvwnr(blurred_img, motion_kernel, 0.1);
% 显示结果
figure;
subplot(1,3,1); imshow(img); title('原始图像');
subplot(1,3,2); imshow(blurred_img); title('模糊后图像');
subplot(1,3,3); imshow(wnr_img); title('维纳滤波后图像');
```
注意:该代码中的模糊核是运动模糊核,可以根据需要修改成其他类型的模糊核。另外,代码中添加的高斯噪声是为了更好地模拟实际情况,可以根据需要调整高斯噪声的参数。
阅读全文