Why .^2 does not work as expected?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Queila Martins
am 17 Jun. 2016
Kommentiert: Queila Martins
am 17 Jun. 2016
Hi,
I'm doing some math calculations in a code. I noticed something strange in the code below:
a = imread('C:\tqPixels.png'); I = rgb2gray(a);
exp = I.^2
As tqPixels.png is an image with only 4 white pixels (all have 255 value), I thought that exp variable value would be each value powered to itself (255 * 255):
exp = [65025, 65025; 65025, 65025]
However, when I saw exp value in the results, it had the same values variable "I" had:
exp = [255, 255; 255, 255]
Sorry if this is very simple, but why .^2 does not work as it should?
I'm attaching the image and the code here for you to test. I really appreciate any suggestions on this.

a = imread('C:\tqPixels.png');
I = rgb2gray(a);
exp1 = I.^2;
0 Kommentare
Akzeptierte Antwort
Roger Stafford
am 17 Jun. 2016
I think you need to convert I to ‘double’ before doing the exponentiation on it. As it is, I believe it is ‘uint8’ type and anything above 255 is set down to just 255. Do this:
exp1 = double(I).^2
4 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Convert Image Type finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!