always get 255 in sum

4 次查看(过去 30 天)
Sneha
Sneha 2017-12-18
评论: Sneha 2017-12-18
I am getting the value 255 all the time in the below loop. P is an lena image of size m*n*3 (m=256,n=256). Actually i need the sum of all pixel values in the entire image. sum=0;
for i=1:3
for j=1:256
for k=1:256
sum = sum+P(j,k,i)
end
end
end
Please help me to solve the problem.
  5 个评论
Stephen23
Stephen23 2017-12-18
Do NOT use the variable name sum, as sum is the name of a very important inbuilt function.
Sneha
Sneha 2017-12-18
ok got it sir

请先登录,再进行评论。

采纳的回答

James Tursa
James Tursa 2017-12-18
Variable P is likely class uint8. Assuming this is true, the summing is done as uint8 which clips at the highest value of 255 for this class. To get around this, do the sum as double instead. E.g.,
Psum = sum(double(P(:)));
Note that I am calling the MATLAB function sum, and NOT using sum as a variable name.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by