From: Thomas Ibbotson on 2 Jun 2010 11:36 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
From: ImageAnalyst on 2 Jun 2010 18:31 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));
|
Pages: 1 Prev: Power law fit with two scaling ranges Next: Multiple ultrasonic sensors on LEGO Mindstorm NXT |