I'm trying to read a DICOM image and change the color of a single specific value.<br>I am using vtkLookupTable.<br>But is having a strange behavior.<br>The image not is showed, but a lot of noise. <br>What can be?<br><br>
code:<br clear="all">#include <cstdio><br>#include <iostream><br>#include "vtkImageData.h"<br>#include "vtkImageViewer2.h"<br>#include "vtkRenderWindowInteractor.h"<br>#include "vtkDICOMImageReader.h"<br>
#include "vtkImageMapToColors.h"<br>#include "vtkLookupTable.h"<br><br>using namespace std;<br><br><br>int main()<br>{<br><br>vtkDICOMImageReader *reader = vtkDICOMImageReader :: New();<br> reader-> SetDirectoryName("C:\\volumes\\exemplo2");<br>
<br> reader->Update();<br><br><br> vtkLookupTable* table = vtkLookupTable::New();<br><br> double* range = reader->GetOutput()->GetScalarRange();<br> printf("\nrange %lf %lf [1]-[0]=%lf\n",range[0],range[1],range[1]-range[0]);<br>
<br> table->SetNumberOfColors( range[1]-range[0] );<br> table->SetTableRange(range[0],range[1]);<br> table->SetSaturationRange(0,0);<br> table->SetHueRange(0,1);<br> table->SetValueRange(0,1);<br>
table->SetAlphaRange(1,1);<br> <br> // set new color<br> table->SetTableValue(0,0.0,1.0,0.0,0.0);<br> <br> table->Build();<br><br><br> //convert to color:<br> vtkImageMapToColors* colormap = vtkImageMapToColors::New();<br>
colormap->SetInput(reader->GetOutput());<br> colormap->SetLookupTable(table);<br> colormap->SetOutputFormatToRGB();<br><br> vtkRenderWindowInteractor* ite = vtkRenderWindowInteractor::New();<br><br> vtkImageViewer2* viewer = vtkImageViewer2::New();<br>
viewer->SetInputConnection( colormap->GetOutputPort() );<br> viewer->SetupInteractor( ite );<br> <br> ite->Initialize();<br> ite->Start();<br><br>return 0;<br>}<br>