I want to find mean value of a mammogram only by choosing the values greater than zero. I used for loops with condition but it gives 255 as answer constantly. I don't know what's the mistake i have done.
[x,y] = size(I);
s = 0;
for i = 1:x
for j = 1:y
if I(i,j) > 0
s = s + I(i,j);
disp('s = ');
s = s + double(I(i,j));
Question: when you are calculating the mean, are you going to be dividing by the number of values in I, or by the number of non-negative values?
Also are you sure that I will be two-dimensional and not 3 dimensional?
Why are you doing two loops, which will make it slow? Why not just do:
nonZeroPixels = yourImage > 0; meanValue = mean(yourImage(nonZeroPixels));
The way above is vectorized, faster, and very MATLABish.