Size of Images varying

2 views (last 30 days)
FIR on 28 Jul 2012
Input = imread('baby1.jpeg') ;
image= im2double(P);
[m n ] = size(A);
Med = [];
%Modified filter
for i=2:m-1
for j=2:n-1
Med(1) = image(i,j);
Med(2) =image(i-1,j) ;
Med(3) = image(i-1,j+1);
Med(4) = image(i,j-1);
Med(5) = image(i,j+1);
Med(6) = image(i+1, j-1);
Med(7) = image(i+1,j);
Med(8) = image(i+1,j+1);
Afilteres(i, j) = median(Med(:));
In this the size of image varies
size(P)=201 300
200 299
PLease help
FIR on 31 Jul 2012
ok Sean thank u

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 28 Jul 2012
Edited: Andrei Bobrov on 28 Jul 2012
m = size(A);
A1 = zeros([m(1:2) + 2,m(3)]);
A1(2:end-1,2:end-1,:) = A;
Af = zeros(m);
for ii = 1:m(1)
for jj = 1:m(2)
k = reshape(A1(ii:ii+2,jj:jj+2,:),[],1,3);
Af(ii,jj,:) = median(k([1:4,6:9],:,:)); % EDIT
Andrei Bobrov
Andrei Bobrov on 28 Jul 2012
Thank you Image, I corrected my answer.

Sign in to comment.

More Answers (2)

Wayne King
Wayne King on 28 Jul 2012
The Image Processing Toolbox has medfilt2
Image Analyst
Image Analyst on 28 Jul 2012
Edited: Image Analyst on 28 Jul 2012
If the built-in function must not be used, then it must be some kind of homework assignment, which means that code solutions provided by Answers must not be used either. Too bad because I have a nice demo using blockproc that I could have given you. However it's strange that median(), the 1D version, can be used while medfilt2(), the sliding 2D version, cannot be used.

Sign in to comment.

Image Analyst
Image Analyst on 28 Jul 2012
Of course the image sizes are different, because you're sliding a window along, and you have it so that when the edge of the window touches the edge of the image, it stops. So of course the output image will not be as big as the input image.
Again, I have demo code but since you said you're not allowed to use built in functions, and probably not code handed over to you in Answers or code you got from the File Exchange, I won't post it. Yeah, sometimes instructors/professors are picky about doing your own work.
Image Analyst
Image Analyst on 30 Jul 2012
Edited: Image Analyst on 30 Jul 2012
Well then you're all set, because Andrei gave you code that used median() (and you've already accepted his answer), and I suggested using sort() and taking the middle element. So I'm assuming that you're done now.

Sign in to comment.


Find more on Image Processing Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by