[vtkusers] vtkImageActor for 10 bit displays?
David Gobbi
david.gobbi at gmail.com
Fri Nov 4 09:17:42 EDT 2011
On Fri, Nov 4, 2011 at 5:43 AM, Jesús Spínola <jspinola at gmail.com> wrote:
>
> How can you achieve 24bits with vtkImageActor? I can't see how to setup the
> pipeline.
You can make a 24-bit image by using vtkImageMapToColors to apply a
lookup table. The lookup table should contain 1024 entries (instead
of the usual 256) in order to maintain 10-bit fidelity.
When RGB data is sent to a grayscale monitor (e.g. over a DVI cable or
equivalent) the monitor displays a gray value equal to the luminance,
which is usually calculated from RGB according to this classic
formula:
Y = R*0.30 + G*0.59 + B*0.11
This formula comes from the CCIR 601 digital video standard, it
compensates for the fact that our eyes are more sensitive to green
light than to red or blue. Virtually all software or hardware that
does RGB to YUV conversion uses this formula or something very
close (including monitors, JPEG software, MPEG software, etc.)
So, if you want a lookup table for 10-bit greyscale, then you need a
lookup table that adjusts the RGB in order to provide 1024 different
values of Y (since Y = luminance = value displayed on a grayscale
monitor):
R G B -> Y
0 0 0 -> 0.000 (exactly 0.00)
1 0 0 -> 0.300 (close to 0.25)
1 0 2 -> 0.520 (close to 0.50)
0 1 2 -> 0.810 (close to 0.75)
1 1 1 -> 1.000 (exactly 1.00)
etc. for all 1024 table values
Do you see what I mean by a 24-bit RGB to 10-bit greyscale conversion?
The goal is to make a lookup table that uses RGB values that aren't
pure gray in order to achieve 10-bits of fidelity in luminance. Then,
when a grayscale monitor displays the luminance, it can display a full
10 bits of grayscale.
- David
More information about the vtkusers
mailing list