Estimating Noise Variance in a Homogeneous Area of an Image

3 views (last 30 days)
Hello, I am working with images that have the quality and resolution of ultrasound images. I am not sure what types of noise are in the images, other than that there's surely Gaussian noise, there's some Salt and Pepper noise that I removed with medfilt2, and likely noise caused by the CCD. I am trying to further filter the image to suppress the noise for segmentation purposes using wiener2. However, I'd like to estimate the noise variance in a homogeneous region of the image rather than only using the default estimate of Gaussian noise. Can anyone tell me how to do this? I know I can use the var function to calculate variance in one direction, but what about getting total variance for my M x N region selected? Should I just choose the maximum after the var function is used, or is there some other way to do this? Thank you for any help you can provide!

Accepted Answer

Image Analyst
Image Analyst on 14 Sep 2011
Get the pixels in some region of interest that you say is uniform, for example by using imfreehand. Then take the histogram of those pixels. That will be your probability density function of your noise, at least for that one intensity level. Don't use var or std since they won't be correct (won't fully describe your noise spectrum) if your pdf is not Gaussian, as you suspect it's not.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!