# Segmentation Node AddSegmentFromClosedSurfaceRepresentation's color only effective on 2d viewer

**URL:** <https://discourse.slicer.org/t/segmentation-node-addsegmentfromclosedsurfacerepresentations-color-only-effective-on-2d-viewer/2435>\
**Category:** Development\
**Tags:** segmentation\
**Created:** [March 27, 2018, 12:30pm UTC](https://discourse.slicer.org/t/segmentation-node-addsegmentfromclosedsurfacerepresentations-color-only-effective-on-2d-viewer/2435 "2018-03-27T12:30:55Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yingli\_Lu](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/yingli_lu/32/1398_2.png) [@Yingli\_Lu](https://discourse.slicer.org/u/Yingli_Lu)\
**Post date:** [March 27, 2018, 12:30pm UTC](https://discourse.slicer.org/t/segmentation-node-addsegmentfromclosedsurfacerepresentations-color-only-effective-on-2d-viewer/2435/1 "2018-03-27T12:30:55Z")

</div>

Slicer version:4.8.1  
Platform: Windows 10  
Pic:

 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/5/4/5491e036ea7c25f96776a2bd0d524962ef1c7506.jpeg)

Code:

> import SampleData
> 
> sampleDataLogic = SampleData.SampleDataLogic()  
> masterVolumeNode = sampleDataLogic.downloadCTChest()
> 
> segmentationNode = slicer.vtkMRMLSegmentationNode()  
> slicer.mrmlScene.AddNode(segmentationNode)  
> segmentationNode.CreateDefaultDisplayNodes() # only needed for display  
> segmentationNode.SetReferenceImageGeometryParameterFromVolumeNode(masterVolumeNode)  
> masterVolumeNode.UpdateDisplayNodeImageData()
> 
> marchingCubes = vtk.vtkMarchingCubes()  
> marchingCubes.SetInputData(masterVolumeNode.GetImageData())  
> marchingCubes.SetValue(0, 1500)  
> marchingCubes.Update()
> 
> ijk2rasmat = vtk.vtkMatrix4x4()  
> masterVolumeNode.GetIJKToRASMatrix(ijk2rasmat)
> 
> transform = vtk.vtkTransform()  
> transform.Concatenate(ijk2rasmat)
> 
> applyTransform = vtk.vtkTransformPolyDataFilter()  
> applyTransform.SetTransform(transform)
> 
> applyTransform.SetInputData(marchingCubes.GetOutput())  
> applyTransform.Update()
> 
> segmentName=“segment”  
> segmentationNode.AddSegmentFromClosedSurfaceRepresentation(applyTransform.GetOutput(), segmentName, [0.0,1.0,0.0])

Any suggestions are greatly appreciated!

YingLi

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [March 27, 2018, 2:04pm UTC](https://discourse.slicer.org/t/segmentation-node-addsegmentfromclosedsurfacerepresentations-color-only-effective-on-2d-viewer/2435/2 "2018-03-27T14:04:36Z")

</div>

Marching cubes created a scalar and set it active, which overwrote the color set by segmentation.

We’ll change the segmentation display in to ignore any scalar values that may be present in the input mesh. For now, you have to remove the scalar values from the mesh if you want to see correct color:

```
import SampleData
masterVolumeNode = SampleData.SampleDataLogic().downloadCTChest()

segmentationNode = slicer.mrmlScene.AddNewNodeByClass("vtkMRMLSegmentationNode")
segmentationNode.CreateDefaultDisplayNodes()
segmentationNode.SetReferenceImageGeometryParameterFromVolumeNode(masterVolumeNode)

marchingCubes = vtk.vtkMarchingCubes()
marchingCubes.SetInputData(masterVolumeNode.GetImageData())
marchingCubes.SetValue(0, 1000)
marchingCubes.Update()
ijk2rasmat = vtk.vtkMatrix4x4()
masterVolumeNode.GetIJKToRASMatrix(ijk2rasmat)
transform = vtk.vtkTransform()
transform.SetMatrix(ijk2rasmat)
applyTransform = vtk.vtkTransformPolyDataFilter()
applyTransform.SetTransform(transform)
applyTransform.SetInputData(marchingCubes.GetOutput())
applyTransform.Update()
surface = applyTransform.GetOutput()

# Remove point arrays to make sure they don't affect display color
while surface.GetPointData().GetNumberOfArrays()>0:
  surface.GetPointData().RemoveArray(0)

segmentationNode.AddSegmentFromClosedSurfaceRepresentation(surface, "segment", [0.0,1.0,0.0])
```

---

<div class="post-metadata">

**Author:** ![Yingli\_Lu](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/yingli_lu/32/1398_2.png) [@Yingli\_Lu](https://discourse.slicer.org/u/Yingli_Lu)\
**Post date:** [March 27, 2018, 2:17pm UTC](https://discourse.slicer.org/t/segmentation-node-addsegmentfromclosedsurfacerepresentations-color-only-effective-on-2d-viewer/2435/3 "2018-03-27T14:17:14Z")

</div>

Got it. Thanks Andras!
