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!