MATLAB: Using if else statements to change values of pixel in an image

image processing

So I am trying to create a function that takes in an image and for every rgb value less than 128, it will change its value to zero, otherwise, it will change its value to 255. However whenever I try using my code, I just get a white, blank image. I am a self taught learner
function newimage = extremecontrast(inimg)
[r,c,l]= size(inimg);
for i = 1:r
for j= 1:c
for k = 1:l
if inimg<128
inimg = 0;
else
inimg = 255;
end
end
end
end
newimage = inimg[i,j,k];
end

Best Answer

I very much doubt you need three nested for loops for this, but
if inimg<128
is not going to do what you want if inimg is an RGB image. I assume you want
if inimg(i,j,k) < 128
and the same for everywhere else you overwrite the whole of your input variable.
Something like
newImage = 255 * round( inimg / 255 );
ought to do the job though instead I think.