MATLAB Answers

What is the best filter to remove Speckle noise?

188 views (last 30 days)
soni on 4 Apr 2015
Commented: Jack Lin on 20 Jun 2018
I inserted Speckle noise to a grey-scaled image and now want to remove it by filtering .
Can you please suggest any good filters that would reduce Speckle noise in an image ?


Image Analyst
Image Analyst on 10 Jun 2017
Well, now, such a simplistic statement is going to require some explanation. First of all, "speckle noise" is a specific type of noise with a specific distribution function. It's not just any old noise. It's not the same as additive white Gaussian noise, salt and pepper noise, 1/f noise, Poisson noise, etc. There are two types of speckle noise that I'm aware of. One is speckle noise introduced by the atmosphere, and for that Knox-Thompson (and improvements based on it) like I suggested in my answer are the way to do. The other is the "noise" of laser speckle, and there are algorithms to smooth that pattern out based on the inverse exponential distribution function of that. Sometime people incorrectly call noise "speckle" in a generic sense, like to describe film grain noise, additive white Gaussian Noise, noise introduced by over-ambitious camera enhancements, slat and pepper noise, etc. For some of those a median filter is a decent way to reduce noise, though maybe not in the best way. For salt and pepper noise, you can use a modified median filter where you don't filter the whole image, which can introduce blurring even with a median filter, but find the noise first and replace the noise ONLY with the median filtered value. I'm attaching demos for that. Finally there are a number of really good noise reduction methods out there but they're more complicated, like BM3D, non-local means, KSVD, etc. See this paper for a thorough overview by one of the leading image noise professors:

Sign in to comment.

Answers (2)

Image Analyst
Image Analyst on 4 Apr 2015
What I learned in grad school was to use the Knox-Thompson method.
Links that may help:
This is a search for the Knox-Thompson method for reducing speckle.
This is another newsgroup thread where I discussed speckle in message #2.

  1 Comment

Jack Lin
Jack Lin on 20 Jun 2018
Hi, the second link is not available anymore. Is there any usable Knox-Thompson code around that we can use since it is a quite old method?

Sign in to comment.

Oindri on 21 Dec 2017
Amongst Gamma Map, Frost, Lee and Wiener filters, 2 dimensional Wiener filter worked best for me. It takes care of local SNR and MSE which helps.


Sign in to comment.

Translated by