您现在的位置:首页 >> 图像处理 >> 内容

基于维纳滤波的图像运动模糊还原matlab仿真

时间:2023/1/6 20:55:59 点击:

  核心提示:A189,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y56TlJ1w

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览





3.算法概述

        维纳滤波(wiener filtering) 一种基于最小均方误差准则、对平稳过程的最优估计器。这种滤波器的输出与期望输出之间的均方误差为最小,因此,它是一个最佳滤波系统。它可用于提取被平稳噪声污染的信号。从连续的(或离散的)输入数据中滤除噪声和干扰以提取有用信息的过程称为滤波,这是信号处理中经常采用的主要方法之一,具有十分重要的应用价值,而相应的装置称为滤波器。根据滤波器的输出是否为输入的线性函数,可将它分为线性滤波器和非线性滤波器两种。维纳滤波器是一种线性滤波器。

4.部分源码

%***********************维娜复原程序********************

figure(2);

subplot(231),imshow(I),title('原始图像');

LEN = 20;

THETA =10;

PSF = fspecial('motion',LEN,THETA);

Blurred = imfilter(I,PSF,'circular');

subplot(232),imshow(Blurred),title('生成的运动的模糊的图像');

noise = 0.1*randn(size(I));

subplot(233),imshow(im2uint8(noise)),title('随机噪声');

BlurredNoisy=imadd(Blurred,im2uint8(noise));

subplot(234),imshow(BlurredNoisy),title('添加了噪声的模糊图像');

Move=deconvwnr(Blurred,PSF);

subplot(235),imshow(Move),title('还原运动模糊的图像');

 

nsr = sum(noise(:).^2)/sum(im2double(I(:)).^2);

wnr2 = deconvwnr(BlurredNoisy,PSF,nsr);

subplot(236),imshow(wnr2),title('还原添加了噪声的图像');

%*************************维纳滤波应用于边缘提取****************************

N = wiener2(I,[3,3]);%选用不同的维纳窗在此修改

M = I - N;

My_Wedge = im2bw (M,5/256);%化二值图像

BW1 = edge(I,'prewitt');

BW2 = edge(I,'canny');

BW3 = edge(I,'zerocross');

BW4 = edge(I,'roberts');

figure(3)

subplot(2,4,[3 4 7 8]),imshow(My_Wedge),title('应用维纳滤波进行边沿提取');

subplot(241),imshow(BW1),title('prewitt');

subplot(242),imshow(BW2),title('canny');

subplot(245),imshow(BW3),title('zerocross');

subplot(246),imshow(BW4),title('roberts');

%*************************维纳滤波应用于图像增强***************************

for i = [1 2 3 4 5]

    K = wiener2(I,[5,5]);

end

  K = K + I;

A189

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168