[vtkusers] simple vtkLookupTable question

Richard Brown richard.j.brown at live.co.uk
Tue Oct 27 12:17:42 EDT 2015


Cory, 

Thanks for the help. 

Found a long-winded way a few days ago, which would work for any colour lookup table that exists in imageJ.

In case this helps anyone in the future, here’s what I did:

In ImageJ,
	Image -> LookupTables -> Fire
	Image -> Color -> Show LUT -> List

The list is of the form:
	index, R, G, B 
where RGB are 0 to 255. vtkLookupTable expects RGB between 0 and 1 so divide by 255 in the code

With a little bit of copy and paste jiggerypokery for the SetTableValue(index,R,G,B), the vtkLookupTable then looks as follows:

        vtkSmartPointer<vtkLookupTable> l_p_fireLookupTable = vtkSmartPointer<vtkLookupTable>::New();

        if (a_cutoffLimit == -1) l_p_fireLookupTable->SetRange(a_low, a_high);
        else l_p_fireLookupTable->SetRange(a_low, a_cutoffLimit);

        l_p_fireLookupTable->SetNumberOfColors(256);

        l_p_fireLookupTable->SetTableValue(0, 0./255., 0./255., 0./255.);
        l_p_fireLookupTable->SetTableValue(1, 0./255., 0./255., 7./255.);
        l_p_fireLookupTable->SetTableValue(2, 0./255., 0./255., 15./255.);
        l_p_fireLookupTable->SetTableValue(3, 0./255., 0./255., 22./255.);
        			...
	l_p_fireLookupTable->SetTableValue(253, 255./255., 255./255., 255./255.);
        l_p_fireLookupTable->SetTableValue(254, 255./255., 255./255., 255./255.);
        l_p_fireLookupTable->SetTableValue(255, 255./255., 255./255., 255./255.);

        l_p_fireLookupTable->Build();

Richard

> On 27 Oct 2015, at 16:15, Cory Quammen <cory.quammen at kitware.com> wrote:
> 
> Richard,
> 
> It's actually a little bit involved.
> 
> Here's Python code to generate ParaView's Black-Body Radiation color map, which I think is similar to ImageJ's 'hot' lookup table.
> 
> import vtk
> 
> cmap = vtk.vtkDiscretizableColorTransferFunction()
> cmap.SetColorSpaceToRGB()
> cmap.AddRGBPoint(0.0, 0.0, 0.0, 0.0) # black
> cmap.AddRGBPoint(0.4, 1.0, 0.9, 0.0) # reddish
> cmap.AddRGBPoint(0.8, 0.9, 0.9, 0.0) # yellow
> cmap.AddRGBPoint(1.0, 1.0, 1.0, 1.0) # white
> 
> scalarValues = vtk.vtkFloatArray()
> scalarValues.SetNumberOfComponents(1)
> scalarValues.SetNumberOfTuples(256)
> for i in xrange(256):
>     scalarValues.SetTupleValue(i, [i / 255.0])
> 
> table = cmap.MapScalars(scalarValues, 0, -1)
> 
> for i in xrange(table.GetNumberOfTuples()):
>     print table.GetTuple(i)
> 
> Note that this defines a colormap for scalar values in the range [0, 1]. You can rescale the first arguments to AddRGBPoints() above for a different scalar range.
> 
> Hope that helps,
> Cory
> 
> On Wed, Oct 21, 2015 at 5:22 AM, mbcx9rb9 <richard.j.brown at live.co.uk <mailto:richard.j.brown at live.co.uk>> wrote:
> I imagine this is a very simple question, but I haven't found the answer
> already in the group.
> 
> I have greyscale data that I want to apply a lookup table to. Currently, my
> lowest value is red and my highest is blue, but I would like something that
> looks more like the 'fire' lookup table in imageJ.
> 
> In essence, I think I want my lowest value to be black and my highest to be
> a red/white. Can anyone give me any pointers?
> 
> Thanks in advance,
> Richard Brown
> 
> 
> 
> --
> View this message in context: http://vtk.1045678.n5.nabble.com/simple-vtkLookupTable-question-tp5734493.html <http://vtk.1045678.n5.nabble.com/simple-vtkLookupTable-question-tp5734493.html>
> Sent from the VTK - Users mailing list archive at Nabble.com.
> _______________________________________________
> Powered by www.kitware.com <http://www.kitware.com/>
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html <http://www.kitware.com/opensource/opensource.html>
> 
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ <http://www.vtk.org/Wiki/VTK_FAQ>
> 
> Search the list archives at: http://markmail.org/search/?q=vtkusers <http://markmail.org/search/?q=vtkusers>
> 
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers <http://public.kitware.com/mailman/listinfo/vtkusers>
> 
> 
> 
> -- 
> Cory Quammen
> R&D Engineer
> Kitware, Inc.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20151027/1ef0675f/attachment.html>


More information about the vtkusers mailing list