Can SQRT be used on an RGB image with double precision?

1 Ansicht (letzte 30 Tage)
FJ
FJ am 6 Apr. 2018
Kommentiert: Rik am 6 Apr. 2018
I am trying to square root my RGB image but it keeps showing me a white output image.

Akzeptierte Antwort

Rik
Rik am 6 Apr. 2018
That is due to the way you display the image. You probably have a uint8 input with values from 0-255. sqrt then does its thing and computes the square root for each element, and converts it to a double. Then you try to use imshow, but now your image is a double, so imshow assumes your data is scaled from 0-1, instead of 0-255 (or 0-15.9687).
You should read the doc for instructions on how you can specify the range, or just scale the image yourself.
  2 Kommentare
FJ
FJ am 6 Apr. 2018
Bearbeitet: FJ am 6 Apr. 2018
Thank you. I'll look into that. So you are saying that once an uint8 is converted into a double (and applied with operations), the values change and I need to scale back to see the original image(with operations applied)?
Rik
Rik am 6 Apr. 2018
You could scale the image to 0-1 doubles with the line below before you calculate the root.
I2 = im2double(I);
Then you don't have to worry about imshow, but your absolute values will be a factor sqrt(255) lower.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

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!

Translated by