peform_wiener_filtering.m

来自「signal procesing toolbox」· M 代码 · 共 39 行

M
39
字号
function [y,Hwien] = peform_wiener_filtering(x0,x,sigma)% peform_wiener_filtering - perform Wiener filtering%%   [y,Hwien] = peform_wiener_filtering(x0,x,sigma);%%   x0 is the original (clean) image%   x is the noisy image%   sigma is the noise level.%%   Copyright (c) 2008 Gabriel Peyren = prod(size(x));if nb_dims(x)==1    % FFT-based wiener filtering (using the oracle fourier coefficients)    x0f = fft(x0);    Pxf = abs(x0f).^2; % power spectra    Hf = Pxf./(Pxf + n*sigma^2); % filter fourier transform    % compute convolution    xf = fft(x);    y = real( ifft(xf.*Hf) );    if nargout>1        Hwien = real( fftshift( ifft(Hf) ) );    endelse    % FFT-based wiener filtering (using the oracle fourier coefficients)    x0f = fft2(x0);    Pxf = abs(x0f).^2; % power spectra    Hf = Pxf./(Pxf + n*sigma^2); % filter fourier transform    % compute convolution    xf = fft2(x);    y = real( ifft2(xf.*Hf) );    if nargout>1        Hwien = real( fftshift( ifft2(Hf) ) );    endend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?