Median filter
Mostra commenti meno recenti
I am trying to understand the working of median filter. this is the code %start
A = imread('/*path name*/') ;
A = im2double(A);
[m n] = size(A);
Med = [];
%Modified filter
for i=2:m-1
for j=2:n-1
Med(1) = A(i-1,j-1);
Med(2) =A(i-1,j) ;
Med(3) = A(i-1,j+1);
Med(4) = A(i,j-1);
Med(5) = A(i,j+1);
Med(6) = A(i+1, j-1);
Med(7) = A(i+1,j);
Med(8) = A(i+1,j+1);
A(i,j) = median(Med);
end
end
imshow(A);
but the output is not as expected. it is blurry. need help..
2 Commenti
Ahmed
il 28 Mar 2013
I tried this code in my research for 2-D medical images and i get a good results better than the standard function of median in matlab and i can send the result to compare between the standard median and this modified one
Changa Hettiarachchi
il 6 Mar 2020
Why i get an error in line Med(1)???

Risposta accettata
Più risposte (1)
Bjorn Gustavsson
il 17 Mag 2011
1 voto
The way you do your itterative medians lead to not taking the median of the input image for pixel [i,j] except for the very first pixel (i=2, j=2). After that (say i=2, j=3) you have overwritten the original pixel value in some of the neighbouring pixels (for the example pixel you'd have the 3-by-3 median in pixel A(2,2), not the original pixel intensity). You should assign the median filtered intensities to pixels in another image array, say Afiltered(i,j).
HTH, Bjeorn
4 Commenti
Darshan A
il 17 Mag 2011
Bjorn Gustavsson
il 17 Mag 2011
What have you tried? Your code "worked", just replace everywhere you assign to A in the median-filtering loop, and the imshow call.
Darshan A
il 18 Mag 2011
Andrei Bobrov
il 18 Mag 2011
analog function medfil2 <http://www.mathworks.com/matlabcentral/answers/5656-program-to-find-the-median-of-the-matrix-need-to-use-for-loop>
Categorie
Scopri di più su Matched Filter and Ambiguity Function in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!