[vtkusers] help! reslice a raw image
stevannindya henryanto
juupunisinshou at gmail.com
Tue Jan 6 05:00:13 EST 2009
Hello,
I'm trying to view an image from 3D raw volume. I'm using vtkImageReslice
for doing it. But, I got a blank view after viewing the output using
vtkImageViewer. Here is my code :
------------------------------------------------------------------------------------------------
vtkImageReader2 *reader = vtkImageReader2::New();
reader->SetFileName("prone8.raw");
reader->SetFileDimensionality(3);
reader->SetDataByteOrderToBigEndian();
reader->SetNumberOfScalarComponents(1);
reader->SetDataExtent(0, 511, 0, 511, 0, 462);
reader->SetDataSpacing(0.625, 0.625, 1.0);
reader->SetDataOrigin(0.0, 0.0, 0.0);
reader->UpdateWholeExtent();
//calculate the center of the volume
reader->GetOutput()->UpdateInformation();
int extent[6];
double spacing[3];
double origin[3];
reader->GetOutput()->GetWholeExtent(extent);
reader->GetOutput()->GetSpacing(spacing);
reader->GetOutput()->GetOrigin(origin);
double center[3];
center[0] = (origin[0] + spacing[0] * 0.5 * (extent[0] + extent[1]));
center[1] = (origin[1] + spacing[1] * 0.5 * (extent[2] + extent[3]));
center[2] = (origin[2] + spacing[2] * 0.5 * (extent[4] + extent[5]));
//matrix for axial view
static double axialElements[16] = {
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1};
//set slice orientation
vtkMatrix4x4 *resliceAxes = vtkMatrix4x4::New();
resliceAxes->DeepCopy(axialElements);
//set the point through which to slice
//set i,j setElement(i,j,double);
resliceAxes->SetElement(0, 3, center[0]);
resliceAxes->SetElement(1, 3, center[1]);
resliceAxes->SetElement(2, 3, center[2]);
//extract slice
vtkImageReslice *reslice = vtkImageReslice::New();
reslice->SetInputConnection(reader->GetOutputPort());
reslice->SetOutputDimensionality(2);
reslice->SetResliceAxes(resliceAxes);
reslice->SetInterpolationModeToLinear();
// Create a greyscale lookup table
vtkLookupTable *table = vtkLookupTable::New();
table->SetRange(0, 2000); // image intensity range
table->SetValueRange(0.0, 1.0); // from black to white
table->SetSaturationRange(0.0, 0.0); // no color saturation
table->SetRampToLinear();
table->Build();
// Map the image through the lookup table
vtkImageMapToColors *color = vtkImageMapToColors::New();
color->SetLookupTable(table);
color->SetInputConnection(reslice->GetOutputPort());
/
//view the image
viewer = vtkImageViewer2::New();
viewer->SetInput(color->GetOutput());
viewer->SetSize(512,512);
// viewer->SetZSlice(sliderValueChanged());
qvtk->SetRenderWindow(viewer->GetRenderWindow());
reader->Delete();
------------------------------------------------------------------------------------------------
I'm using qt3 here. Plese help me....
Thanks...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20090106/12956159/attachment.htm>
More information about the vtkusers
mailing list