Smoothing data on segmented regions independently from other segments

1 view (last 30 days)
I have a set of measured data on a rectangular area (let's say the surface of a material) for which I have a binary image indicating the regions corresponding to two different constituent phases of the surface. Priori to differentiation, I need to perform data smoothing on the segmented areas separately so as not to lose the a priori known spatial heterogeneity of the differentiated data at the boundary edges between segments.
I have been thinking of smoothing using Finite Elements with different smoothing parameters for each of the segments, but I don't know how to efficiently do it.
I have also tried using thin plate smoothing spline tpaps of MATLAB for each segment, but it was extremely slow for large data and hence being practically impossible.
I highly appreciate if any one shares their experiences related to my problem.
Thanks
Farhad

Accepted Answer

Image Analyst
Image Analyst on 17 Jun 2012
How about if you just made each binary region the mean gray level for that region. That would be the ultimate smoothing. Do you want to do that?
Or would you consider a general method like non-local means or the sigma filter or the k-nearest neighbors filter? http://www.mathworks.com/matlabcentral/fileexchange/?term=non-local+means
  4 Comments
Image Analyst
Image Analyst on 17 Jun 2012
The methods I described will work with any 2D array, regardless of whether it is an actual "image" or not. You can Google other noise reduction methods such as k-Nearest Negihbors, K-SVD, K-LLD, BM3D, etc. and find links such as these:
http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html
http://www.cs.tut.fi/~foi/GCF-BM3D/
http://users.soe.ucsc.edu/~milanfar/talks/
Not all of them are available via the File Exchange.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!