[vtkusers] vtkImageActor for 10 bit displays?

David Gobbi david.gobbi at gmail.com
Fri Nov 4 10:05:13 EDT 2011


The output has multiple components.  Eight bits of red, eight bits of green,
and eight bits of blue. In fact, there are four unsigned chars per pixel,
because there is also eight bits for alpha (set to the max value of 255).

 - David


On Fri, Nov 4, 2011 at 7:58 AM, Jesús Spí­nola <jspinola at gmail.com> wrote:
> Hi David,
> thanks for your detailed answer since it's very helpful.
> But there's still something that I don't fully understand; reading
> documentation of vtkImageMapToColors it says:
> "The vtkImageMapToColors filter will take an input image of any valid scalar
> type, and map the first component of the image through a lookup table. The
> result is an image of type VTK_UNSIGNED_CHAR."
> So, even if LUT has 1024 values, the output will be 8 bits (256 values), so
> for my understanding, data is cut down on the output so the monitor will
> receive only 256 shades of gray. Am I wrong or missing something?
> Thanks in advance!
> On Fri, Nov 4, 2011 at 2:17 PM, David Gobbi <david.gobbi at gmail.com> wrote:
>>
>> 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
>
>
>
> --
> Jesús Spínola
>



More information about the vtkusers mailing list