COMPGROUPS.NET | Search | Post Question | Groups | Stream | About | Register

### Smoothing image data

• Email
• Follow

I want to make a measurement on some image data which requires it to be smooth. I have a noisy image. With 1D data I would use the "smooth" function. I don't think a median filter is right for my application. Ideally I would like to do a robust lowess regression such as provided by the curve fitting toolbox. I have two vectors for the x and y data which are around 1x100 and 1x800 and the image data is therefore 100x800. The only solution I can think of is to take a sample of these points and use the surface fitting tool on them. Is there a better way to do this? It seems much easier to do in 1D...

Tom
 0

See related articles to this posting

Tom:
There are so many ways to reduce the noise in an image - it's one of
the favorite topics for publication in the image processing field.
There's median filtering, as you mentioned.  Median filtering's claim
to fame is that it reduces noise without blurring the image especially
"true" edges, although this is less true with larger window sizes.
You can also use convolution to blur the image - this is the conv2()
function in the image processing toolbox.  Or you can use MATLAB
functions imfilter() or nlfilter() if you want to make your own noise
reduction filter.

Or you can pick other methods such as non-local means, bilateral
filters, sigma filters, BM3D, K-SVD, K-LLD, ISKR, etc.  Here's a
comparison of some of them:
http://users.soe.ucsc.edu/~milanfar/publications/conf/Asilomar2007_2.pdf
Most of these noise reduction methods attempt to reduce noise without
smoothing (blurring) the image.  If you really want to blur the image
and noise, then just go with conv2() - it's the easiest:
blurredImage = conv2(grayImage, ones(7,7));

 0