Median filter
이전 댓글 표시
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
Ahmed
2013년 3월 28일
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
2020년 3월 6일
Why i get an error in line Med(1)???

채택된 답변
추가 답변 (1개)
Bjorn Gustavsson
2011년 5월 17일
1 개 추천
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
Darshan A
2011년 5월 17일
Bjorn Gustavsson
2011년 5월 17일
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
2011년 5월 18일
Andrei Bobrov
2011년 5월 18일
analog function medfil2 <http://www.mathworks.com/matlabcentral/answers/5656-program-to-find-the-median-of-the-matrix-need-to-use-for-loop>
카테고리
도움말 센터 및 File Exchange에서 Matched Filter and Ambiguity Function에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!