def testGetRangeDoubleStarArg(self):
        cmap = vtk.vtkDiscretizableColorTransferFunction()

        localRange = [-1, -1]
        cmap.GetRange(localRange)
        self.assertEqual(localRange[0], 0.0)
        self.assertEqual(localRange[1], 0.0)
    def __init__(self, source, orientation, opacity=1.0):

        self.reslice = vtk.vtkImageReslice()
        self.reslice.SetInputData(source)
        self.reslice.SetOutputDimensionality(2)
        self.reslice.SetResliceAxes(orientation)
        self.reslice.SetInterpolationModeToNearestNeighbor()

        # Set lookup table
        color_transfer = vtk.vtkDiscretizableColorTransferFunction()
        alpha_transfer = vtk.vtkPiecewiseFunction()
        color_transfer.AddRGBPoint(0, 0., 0., 0.)  # Background
        alpha_transfer.AddPoint(0, 0)  # Background
        for i, organ in enumerate(Settings.labels):
            color_transfer.AddRGBPoint(Settings.labels[organ]['value'],
                                       *Settings.labels[organ]['rgb'])
            if organ in Settings.organs:
                alpha_transfer.AddPoint(Settings.labels[organ]['value'],
                                        opacity)
            else:
                alpha_transfer.AddPoint(Settings.labels[organ]['value'], 0.)
        color_transfer.SetScalarOpacityFunction(alpha_transfer)
        color_transfer.EnableOpacityMappingOn()

        # Map the image through the lookup table
        self.color = vtk.vtkImageMapToColors()
        self.color.SetLookupTable(color_transfer)
        self.color.SetInputConnection(self.reslice.GetOutputPort())

        # Display the image
        self.actor = vtk.vtkImageActor()
        self.actor.GetMapper().SetInputConnection(self.color.GetOutputPort())
    def testGetRangeNoArg(self):
        cmap = vtk.vtkDiscretizableColorTransferFunction()

        crange = cmap.GetRange()
        self.assertEqual(len(crange), 2)
        self.assertEqual(crange[0], 0.0)
        self.assertEqual(crange[1], 0.0)
    def testGetRangeNoArg(self):
        cmap = vtk.vtkDiscretizableColorTransferFunction()

        crange = cmap.GetRange()
        self.assertEqual(len(crange), 2)
        self.assertEqual(crange[0], 0.0)
        self.assertEqual(crange[1], 0.0)
    def testGetRangeDoubleStarArg(self):
        cmap = vtk.vtkDiscretizableColorTransferFunction()

        localRange = [-1, -1]
        cmap.GetRange(localRange)
        self.assertEqual(localRange[0], 0.0)
        self.assertEqual(localRange[1], 0.0)
Exemple #6
0
def get_lut(ncol=20, lut_type='mat', maxind=20, vrange=(0, 1)):

    if lut_type == 'mat':
        c = [
            '#ffdcd2', '#ffa4a4', '#f98568', '#da180e', '#ffffc6', '#def538',
            '#b0b000', '#878e2b', '#dbfdc6', '#8bf391', '#5ac960', '#658750',
            '#e0e4fe', '#bb9af1', '#548bcf', '#fdcbfe', '#e75ae3', '#ad5ab4',
            '#abe3e7', '#67b1ae'
        ]
        lut = vtk.vtkLookupTable()
        lut.SetNumberOfTableValues(ncol * int(np.ceil(maxind / 20.)))
        for k in range(ncol * int(np.ceil(maxind / 20.))):
            cv = colors.hex2color(c[k % 20])
            lut.SetTableValue(k, cv[0], cv[1], cv[2])
    elif lut_type == 'maps':
        c = [
            '#4b0bf4', '#3c8aff', '#3da7fe', '#3fbefc', '#45d7f5', '#53e8e8',
            '#5fdcc2', '#58e28f', '#51ee4d', '#8ffb40', '#bbfb75', '#d8fe63',
            '#ffff00', '#f1e723', '#efd850', '#eeba4d', '#f28b40', '#fe4743',
            '#e90601', '#c15004'
        ]

        lut = vtk.vtkDiscretizableColorTransferFunction()
        lut.DiscretizeOn()
        lut.SetNumberOfValues(ncol)
        dv = vrange[1] - vrange[0]
        for k, cc in enumerate(c):
            cv = colors.hex2color(cc)
            lut.AddRGBPoint(k * dv / ncol + vrange[0], cv[0], cv[1], cv[2])

    return lut
    def testGetRangeTwoDoubleStarArg(self):
        cmap = vtk.vtkDiscretizableColorTransferFunction()

        localMin = vtk.mutable(-1)
        localMax = vtk.mutable(-1)
        cmap.GetRange(localMin, localMax)
        self.assertEqual(localMin, 0.0)
        self.assertEqual(localMax, 0.0)
    def testGetRangeTwoDoubleStarArg(self):
        cmap = vtk.vtkDiscretizableColorTransferFunction()

        localMin = vtk.mutable(-1)
        localMax = vtk.mutable(-1)
        cmap.GetRange(localMin, localMax)
        self.assertEqual(localMin, 0.0)
        self.assertEqual(localMax, 0.0)
    def __init__(self, source):

        # Get list with string-representations of the organs to be used
        organs = Settings.organs

        source.Update()

        # Filter
        cast_filter = vtk.vtkImageCast()
        cast_filter.SetOutputScalarTypeToUnsignedInt()
        cast_filter.SetInputConnection(source.GetOutputPort())
        cast_filter.Update()

        # Create mesh using marching cube
        march = vtk.vtkDiscreteMarchingCubes()
        march.ComputeNormalsOn()
        march.ComputeGradientsOn()
        for i, organ in enumerate(organs):
            march.SetValue(i, Settings.labels[organ]['value'])
        march.SetInputData(cast_filter.GetOutput())
        march.Update()

        # Filtrate the masks
        smooth = vtk.vtkWindowedSincPolyDataFilter()
        smooth.SetInputConnection(march.GetOutputPort())
        smooth.SetNumberOfIterations(15)
        smooth.BoundarySmoothingOff()
        smooth.FeatureEdgeSmoothingOff()
        smooth.SetFeatureAngle(120.0)
        smooth.SetPassBand(.001)
        smooth.NonManifoldSmoothingOn()
        smooth.NormalizeCoordinatesOn()
        smooth.Update()


        # Set lookup table
        self.color_transfer = vtk.vtkDiscretizableColorTransferFunction()
        self.alpha_transfer = vtk.vtkPiecewiseFunction()
        self.color_transfer.AddRGBPoint(0, 0., 0., 0.) # Background
        self.alpha_transfer.AddPoint(0, 0) # Background
        for i, organ in enumerate(Settings.organs):
            self.color_transfer.AddRGBPoint(Settings.labels[organ]['value'], *Settings.labels[organ]['rgb'])
            self.alpha_transfer.AddPoint(Settings.labels[organ]['value'], 1.)
        self.color_transfer.SetScalarOpacityFunction(self.alpha_transfer)


        # Surface mapper
        self.surface_mapper = vtk.vtkPolyDataMapper()
        self.surface_mapper.SetLookupTable(self.color_transfer)
        self.surface_mapper.SetInputConnection(smooth.GetOutputPort())


        # Create the actor
        self.actor = vtk.vtkActor()
        self.actor.GetProperty().SetOpacity(1.)
        self.actor.SetMapper(self.surface_mapper)
        self.actor.GetProperty().ShadingOn()
	def transferfunction(self, imagedata, color):
		scalarRange = imagedata.GetScalarRange()

		opacity = vtkPiecewiseFunction()
		opacity.AddPoint(scalarRange[0], 0)
		opacity.AddPoint(scalarRange[1], 1)

		transfer = vtkDiscretizableColorTransferFunction()
		transfer.AddRGBPoint(scalarRange[0], 0, 0, 0)
		transfer.AddRGBPoint(scalarRange[1], color[0], color[1], color[2])
		transfer.SetScalarOpacityFunction(opacity)
		return transfer
def ColorTransferFunction():
    opacityTransfer = vtk.vtkPiecewiseFunction()
    opacityTransfer.AddPoint(0, 0)
    opacityTransfer.AddPoint(0.6, 0)
    opacityTransfer.AddPoint(1, 1)

    lut = vtk.vtkDiscretizableColorTransferFunction()
    lut.SetColorSpaceToDiverging()
    lut.AddRGBPoint(0.0, 0.23, 0.299, 0.754)
    lut.AddRGBPoint(1.0, 0.706, 0.016, 0.150)
    lut.SetVectorModeToMagnitude()
    lut.SetRange(0, 1)
    lut.SetScalarOpacityFunction(opacityTransfer)
    lut.EnableOpacityMappingOn()
    return lut
Exemple #12
0
def ColorTransferFunction():
    opacityTransfer = vtk.vtkPiecewiseFunction()
    opacityTransfer.AddPoint(0,0)
    opacityTransfer.AddPoint(0.6,0)
    opacityTransfer.AddPoint(1,1)

    lut = vtk.vtkDiscretizableColorTransferFunction()
    lut.SetColorSpaceToDiverging();
    lut.AddRGBPoint(0.0, 0.23, 0.299, 0.754)
    lut.AddRGBPoint(1.0, 0.706, 0.016, 0.150);
    lut.SetVectorModeToMagnitude()
    lut.SetRange (0, 1)
    lut.SetScalarOpacityFunction(opacityTransfer)
    lut.EnableOpacityMappingOn()
    return lut
Exemple #13
0
def generate_log_ctf(maxval):
    f = vtk.vtkDiscretizableColorTransferFunction()
    #f.DiscretizeOn()
    #f.SetColorSpaceToDiverging()
    f.SetNumberOfValues(256)
    f.AddRGBPoint(maxval * 1.e1, 1.0, 1.0, 1.0)
    f.AddRGBPoint(maxval * 1.e0, 0.9, 0.9, 0.9)
    f.AddRGBPoint(maxval * 1.e-1, 0.6, 0.6, 0.0)
    f.AddRGBPoint(maxval * 1.e-2, 0.9, 0.0, 0.0)
    f.AddRGBPoint(maxval * 1.e-3, 0.6, 0.0, 0.6)
    f.AddRGBPoint(maxval * 1.e-4, 0.0, 0.0, 0.9)
    f.AddRGBPoint(maxval * 1.e-5, 0.0, 0.3, 0.3)
    f.AddRGBPoint(maxval * 1.e-6, 0.1, 0.1, 0.1)
    f.Build()
    return f
Exemple #14
0
    def set_colorbar(self, title=''):
        self.cmap = vtk.vtkDiscretizableColorTransferFunction()
        colors = list(reversed(self.colors))
        for kc, c in enumerate(colors):
            self.cmap.AddRGBPoint(
                self.vrange[0] * (float(kc) / (len(colors) - 1)) +
                self.vrange[1] * (1. - float(kc) / (len(colors) - 1)),
                c[0] / 255., c[1] / 255., c[2] / 255.)
        self.cmap.SetNumberOfValues(10)
        self.cmap.SetDiscretize(True)
        self.cmap.SetVectorModeToComponent()
        self.cmap.Build()

        self.mapper.SetLookupTable(self.cmap)
        self.mapper.InterpolateScalarsBeforeMappingOn()

        self.scalarBar = vtk.vtkScalarBarActor()
        self.scalarBar.SetLookupTable(self.cmap)
        if title == '':
            self.scalarBar.SetTitle(self.scalar_name)
        else:
            self.scalarBar.SetTitle(title)
        tp = self.scalarBar.GetTitleTextProperty()
        tp.SetItalic(False)
        tp.SetBold(False)
        tp.SetColor(0, 0, 0)
        tp.SetShadow(0)
        tp.SetFontSize(8)
        tp.SetFontFamily(1)
        self.scalarBar.SetTitleTextProperty(tp)
        self.scalarBar.SetLabelTextProperty(tp)
        self.scalarBar.SetWidth(0.15)
        self.scalarBar.SetHeight(0.8)
        self.scalarBar.SetNumberOfLabels(11)
        self.scalarBar.SetAnnotationLeaderPadding(16)

        self.ren.AddActor2D(self.scalarBar)
#!/usr/bin/env python
import sys
import vtk
from vtk.test import Testing

useBelowRangeColor = 0
if sys.argv.count("--useBelowRangeColor") > 0:
    useBelowRangeColor = 1
useAboveRangeColor = 0
if sys.argv.count("--useAboveRangeColor") > 0:
    useAboveRangeColor = 1

cmap = vtk.vtkDiscretizableColorTransferFunction()
cmap.AddRGBPoint(-.4, 0.8, 0.8, 0.8)
cmap.AddRGBPoint(0.4, 1, 0, 0)
cmap.SetUseBelowRangeColor(useBelowRangeColor)
cmap.SetBelowRangeColor(0.0, 1.0, 0.0)
cmap.SetUseAboveRangeColor(useAboveRangeColor)
cmap.SetAboveRangeColor(1.0, 1.0, 0.0)

sphere = vtk.vtkSphereSource()
sphere.SetPhiResolution(32)
sphere.SetThetaResolution(32)
sphere.Update()

pd = sphere.GetOutput().GetPointData()
for i in xrange(pd.GetNumberOfArrays()):
    print pd.GetArray(i).GetName()

mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(sphere.GetOutputPort())
#!/usr/bin/env python
import sys
import vtk
from vtk.test import Testing

useBelowRangeColor = 0
if sys.argv.count("--useBelowRangeColor") > 0:
    useBelowRangeColor = 1
useAboveRangeColor = 0
if sys.argv.count("--useAboveRangeColor") > 0:
    useAboveRangeColor = 1


cmap = vtk.vtkDiscretizableColorTransferFunction()
cmap.AddRGBPoint(-.4, 0.8, 0.8, 0.8)
cmap.AddRGBPoint(0.4, 1, 0, 0)
cmap.SetUseBelowRangeColor(useBelowRangeColor)
cmap.SetBelowRangeColor(0.0, 1.0, 0.0)
cmap.SetUseAboveRangeColor(useAboveRangeColor)
cmap.SetAboveRangeColor(1.0, 1.0, 0.0)

sphere = vtk.vtkSphereSource()
sphere.SetPhiResolution(32)
sphere.SetThetaResolution(32)
sphere.Update()

pd = sphere.GetOutput().GetPointData()
for i in xrange(pd.GetNumberOfArrays()):
    print pd.GetArray(i).GetName()

mapper = vtk.vtkPolyDataMapper()