[vtkusers] Complementary color LUTs

Jothybasu Selvaraj jothybasu at gmail.com
Wed Apr 20 20:49:05 EDT 2016


Yup, SetValueRange() missing!

Thanks a lot!


Cheers

Jothy

On Thu, Apr 21, 2016 at 10:32 AM, David Gobbi <david.gobbi at gmail.com> wrote:

> It looks like the "Window" part of your Window/Level setting is wrong.
>
> On Wed, Apr 20, 2016 at 6:15 PM, Jothybasu Selvaraj <jothybasu at gmail.com>
> wrote:
>
>> 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/9d5d8c44/attachment.html>


More information about the vtkusers mailing list