[vtkusers] Complementary color LUTs

Jothybasu Selvaraj jothybasu at gmail.com
Wed Apr 20 20:15:21 EDT 2016


Sorry, with the GreenTable->SetRampToLinear() it looks like the one in the
attached figure. But I would like to visualize some anatomical details as
in the previous Ref.jpg.

Thanks

Jothy

On Thu, Apr 21, 2016 at 9:55 AM, Jothybasu Selvaraj <jothybasu at gmail.com>
wrote:

> Hi David
>
> Though it works, I would like to have the images rendered like the one
> shown in Ref.jpg. With the current code it is rendered like the one in the
> attached Current.jpg.
>
> Thanks
>
> Jothy
>
> On Thu, Apr 21, 2016 at 9:32 AM, Jothybasu Selvaraj <jothybasu at gmail.com>
> wrote:
>
>> Fantastic David!
>>
>> With the latest modification on table2 you sent, it  works well.
>>
>> I agree, it will be great if VTK can add a class to do this where users
>> can choose a set of colors they need to fuse.
>>
>>
>> Thanks a lot!
>>
>>
>> Cheers
>>
>> Jothy
>>
>> On Thu, Apr 21, 2016 at 12:45 AM, David Gobbi <david.gobbi at gmail.com>
>> wrote:
>>
>>> Looks like I was wrong about the second table.  It should use this:
>>>
>>>     table2 ->SetValueRange(0.0,1.0);
>>>     table2 ->SetAlphaRange(0.5,0.5);
>>>
>>> Ideally, it would be nice if VTK provided a way to simply add the
>>> two colors together, but the best you can do is use the alpha to
>>> make VTK multiply the images by 0.5 before adding them.  As a
>>> result, you end up with grey instead of white.
>>>
>>>  - David
>>>
>>> On Wed, Apr 20, 2016 at 1:15 AM, David Gobbi <david.gobbi at gmail.com>
>>> wrote:
>>>
>>>> Hi Jothy,
>>>>
>>>> I see this mistake a lot... people try to blend images by setting the
>>>> alpha of both images to 0.5.  That's wrong.  If you want to blend images,
>>>> then the first image should be opaque, and the second image should have an
>>>> alpha of 0.5.
>>>>
>>>> C = C1*(1 - alpha2) + C2*alpha2
>>>>
>>>> The second mistake is that, if you want to blend complimentary colors,
>>>> then you don't want the Value of the second image to be the ramp.  Instead,
>>>> you want the Alpha of the second image to be the ramp.
>>>>
>>>>     // Create a GREEN lookup table
>>>>     vtkSmartPointer<vtkLookupTable> table =
>>>>             vtkSmartPointer<vtkLookupTable>::New();
>>>>     table->SetHueRange(0.33333,0.33333);
>>>>     table->SetSaturationRange(1.0,1.0);
>>>>     table->SetValueRange(0.0,1.0);
>>>>     table->SetAlphaRange(1.0,1.0); // make the bottom image opaque
>>>>     table->SetRampToLinear();
>>>>     table->Build();
>>>>
>>>>     // Create a MAGENTA lookup table
>>>>     vtkSmartPointer<vtkLookupTable>table2 =
>>>>             vtkSmartPointer<vtkLookupTable>::New();
>>>>     table2 ->SetHueRange(0.8333,0.8333);
>>>>     table2 ->SetSaturationRange(1.0,1.0);
>>>>     table2 ->SetValueRange(1.0,1.0); // use pure magenta, don't mix
>>>> with black
>>>>     table2 ->SetAlphaRange(0.0,1.0); // use an alpha ramp to blend the
>>>> images
>>>>     table2 ->SetRampToLinear();
>>>>     table2 ->Build();
>>>>
>>>> - David
>>>>
>>>>
>>>> On Tue, Apr 19, 2016 at 11:43 PM, Jothybasu Selvaraj <
>>>> jothybasu at gmail.com> wrote:
>>>>
>>>>> Hi All
>>>>>
>>>>> I am trying to overlay 2 registered images using complementary LUTs
>>>>> (magenta & green), so that the images will appear white where they match
>>>>> perfectly. However, I couldn't get the desired results. The image appears
>>>>> magenta where they match.
>>>>>
>>>>> Can anyone find any mistakes in this?
>>>>>
>>>>> Below are the LUTs I use:
>>>>>
>>>>> // Create a GREEN lookup table
>>>>>
>>>>>     vtkSmartPointer<vtkLookupTable> table =
>>>>>
>>>>>             vtkSmartPointer<vtkLookupTable>::New();
>>>>>
>>>>>     table->SetHueRange(0.33333,0.33333);
>>>>>
>>>>>     table->SetSaturationRange(1.0,1.0);
>>>>>
>>>>>     table->SetValueRange(0.0,1.0);
>>>>>
>>>>>     table->SetAlpha(0.5);
>>>>>
>>>>>     table->SetRampToLinear();
>>>>>
>>>>>     table->Build();
>>>>>
>>>>>
>>>>> // Create a MAGENTA lookup table
>>>>>
>>>>>     vtkSmartPointer<vtkLookupTable>table2 =
>>>>>
>>>>>             vtkSmartPointer<vtkLookupTable>::New();
>>>>>
>>>>>     table2 ->SetHueRange(0.8333,0.8333);
>>>>>
>>>>>     table2 ->SetSaturationRange(1.0,1.0);
>>>>>
>>>>>     table2 ->SetValueRange(0.0,1.0);
>>>>>
>>>>>     table2 ->SetAlpha(0.5);
>>>>>
>>>>>     table2 ->SetRampToLinear();
>>>>>
>>>>>     table2 ->Build();
>>>>>
>>>>>
>>>>> Any help is highly appreciated!
>>>>>
>>>>>
>>>>>
>>>>> Cheers
>>>>>
>>>>>
>>>>> Jothy
>>>>>
>>>>>
>>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160421/84f6a599/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Untitled.png
Type: image/png
Size: 53691 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160421/84f6a599/attachment-0001.png>


More information about the vtkusers mailing list