Always getting 255 while adding.

I had a matrix of Red values of an image R of size 65536*1 and i had 3 integer values RR(1),GG(1) and BB(1). I need to add R(1)+GG(1)+BB(1) to get new RR(2). Similarly for the other two. But while am doing Rcomponent = R(1)+GG(1)+BB(1); its showing 255 always. [here R(1) = 68 , GG(1) = 173 , BB(1) = 147] Please help me with this. R matrix is of uint8.

1 件のコメント

Greg
Greg 2018 年 1 月 17 日
Hint: What's the maximum value a uint8 can hold? What happens when you exceed that value?

サインインしてコメントする。

 採用された回答

James Tursa
James Tursa 2018 年 1 月 17 日

0 投票

All of the integer types clip resulting values at both ends. So for uint8 it clips the lower end at 0 and the upper end at 255. You can convert to double first if you want to see what you are apparently expecting. E.g.,
Rcomponent = double(R) + double(GG) + double(BB);

1 件のコメント

Sneha
Sneha 2018 年 1 月 17 日
Got it. Thanks

サインインしてコメントする。

その他の回答 (0 件)

タグ

質問済み:

2018 年 1 月 17 日

コメント済み:

2018 年 1 月 17 日

Community Treasure Hunt

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

Start Hunting!

Translated by