How do RGB values from 0 to 1 get converted to a number from 0 to 255?

Is the RGB value simply scaled to a number from 0 to 255 to determine the colour of a pixel on the screen?

Antworten (2)

Image Analyst
Image Analyst am 28 Aug. 2014

0 Stimmen

RGB images have 3 color channels (planes). The values in each plane can be in the range of 0-255 if you want to display them.

3 Kommentare

I thought that they had to be in the range 0 to 1, at least in colormaps in MATLAB the RGB values are always 0 to 1. I want to know whether for example the color [0.5 0.5 0.5] is outputted to the screen as [128 128 128], or whether the mapping is non-linear. The actual color of the pixel must eventually be determined by three 8 bit numbers (i.e. 0 to 255) - or does it depend on the monitor?
It is a simple linear mapping. I don't know off-hand whether [0.5 0.5 0.5] maps to [128 128 128] or [127 127 127], but the scaling is definitely linear.
Image Analyst
Image Analyst am 28 Aug. 2014
Bearbeitet: Image Analyst am 28 Aug. 2014
The color of the pixel is 3 numbers for R, G, and B. If you're displaying them on the screen, they must be uint8 which means they'll be in the range 0-255. Of course you can work with any range you want (0-1 or -999 to +12345 or whatever) or even floating point values internal to your program - nothing wrong with that. But to display you'll need to scale into the range 0-255 and cast to uint8.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Convert Image Type finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 28 Aug. 2014

Beantwortet:

am 28 Aug. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by