Can you please tell me how to filter this image of noise without suppressing the border information?

2 views (last 30 days)
There are three objects not connected to each other. I want to filter the middle part to measure the distance between them. If I use linear filter it suppresses the border information. Opening the image did not give any results either. Kindly suggest how to enhance this image for the same.

Answers (2)

Image Analyst
Image Analyst on 9 Feb 2013
Well morphological opening definitely won't help! I'd suggest you use anisotropic diffusion. It will smooth along features while preserving edges. Sometimes used for fingerprint enhancement. Peter Kovesi has some code for you to use: http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/#anisodiff If you want to do it manually, you can use imdistline() or improfile().
  10 Comments

Sign in to comment.


Youssef  Khmou
Youssef Khmou on 14 Feb 2013
hi, Richa,
I think Image Analyst can give the solution , anyway i tried to filter your image with Wiener filter, i can not download your image, but i took a similar one ( MRI of the Brain, its standard 4D image in MathW) :
load MRI
D=squeeze(D);
I=im2double(D(:,:,15)); % 15th slice as example
imshow(I)
noisyI=imnoise(I,'Gaussian');
figure, imshow(noisyI)
F1=wiener2(I,[5 5]);
figure, imshow(F1)
Try to take a look at Wiener filter in the Doc . we applied the filter with a 5x5 windows, the default is 3x3, you can also try 7x7.
If this solution gives you good result, we can work on it to get enhanced filtering , by using a method to estimate the noise of power .
  4 Comments
Image Analyst
Image Analyst on 15 Feb 2013
The only mean shift code I have is from the File Exchange. You can search that yourself, as well as the entire web.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!