Products & Services Solutions Academia Support User Community Company

Learn more about Image Processing Toolbox   

Deblurring with the Wiener Filter

Use the deconvwnr function to deblur an image using the Wiener filter. Wiener deconvolution can be used effectively when the frequency characteristics of the image and additive noise are known, to at least some degree. In the absence of noise, the Wiener filter reduces to the ideal inverse filter.

This example deblurs the blurred image created in Deblurring Model, specifying the same PSF function that was used to create the blur. This example illustrates the importance of knowing the PSF, the function that caused the blur. When you know the exact PSF, the results of deblurring can be quite effective.

  1. Read an image into the MATLAB workspace. (To speed the deblurring operation, the example also crops the image.)

    I = imread('peppers.png'); 
    I = I(10+[1:256],222+[1:256],:); 
    figure;imshow(I);title('Original Image');

  2. Create a PSF.

    LEN = 31;
    THETA = 11;
    PSF = fspecial('motion',LEN,THETA);
  3. Create a simulated blur in the image.

    Blurred = imfilter(I,PSF,'circular','conv');
    figure; imshow(Blurred);title('Blurred Image');

  4. Deblur the image.

    wnr1 = deconvwnr(Blurred,PSF);
    figure;imshow(wnr1);
    title('Restored, True PSF');

Refining the Result

You can affect the deconvolution results by providing values for the optional arguments supported by the deconvwnr function. Using these arguments you can specify the noise-to-signal power value and/or provide autocorrelation functions to help refine the result of deblurring. To see the impact of these optional arguments, view the Image Processing Toolbox deblurring demos.

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

 © 1984-2009- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS