[vtkusers] Complementary color LUTs
David Gobbi
david.gobbi at gmail.com
Wed Apr 20 10:45:44 EDT 2016
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/20160420/ba561e15/attachment.html>
More information about the vtkusers
mailing list