Effacer les filtres
Effacer les filtres

Why .^2 does not work as expected?

1 vue (au cours des 30 derniers jours)
Queila Martins
Queila Martins le 17 Juin 2016
Commenté : Queila Martins le 17 Juin 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;

Réponse acceptée

Roger Stafford
Roger Stafford le 17 Juin 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 commentaires
Queila Martins
Queila Martins le 17 Juin 2016
That's true, Image Analyst (about variable's name). Thank you for pointing that :D
Also thank you Steven for the link. Very useful!!
Queila Martins
Queila Martins le 17 Juin 2016
Roger, it worked! Now it makes sense. Thank you so much!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by