[vtkusers] vtkImageReslice
JULIO DANIEL
judagica at hotmail.com
Wed Jan 30 08:56:50 EST 2002
this a code for vtkimageReslice and vtkImageViewer
good luck.
renAxial = vtkRenderer::New();
vtkRenderWindow *renWindowAxial = vtkRenderWindow::New();
renWindowAxial->AddRenderer(renAxial);
AxialView->SetRenderWindow(renWindowAxial);
renSagittal = vtkRenderer::New();
vtkRenderWindow *renWindowSagittal = vtkRenderWindow::New();
renWindowSagittal->AddRenderer(renSagittal);
SagittalView->SetRenderWindow(renWindowSagittal);
renCoronal = vtkRenderer::New();
vtkRenderWindow *renWindowCoronal = vtkRenderWindow::New();
renWindowCoronal->AddRenderer(renCoronal);
CoronalView->SetRenderWindow(renWindowCoronal);
// open volume
reader = vtkVolume16Reader::New();
reader->ReleaseDataFlagOff();
reader->SetDataDimensions(x_dimension_volumen,y_dimension_volumen);
reader->SetDataByteOrderToLittleEndian();
reader->SetFilePrefix(path_volume_files);
reader->SetImageRange(z_initial_slice,z_final_slice);
reader->SetDataSpacing
(x_spacing_volume,y_spacing_volume,z_spacing_volume);
reader->SetDataOrigin(-x_spacing_volume*((x_dimension_volumen-1)/2),
-y_spacing_volume*((y_dimension_volumen-1)/2),
-z_spacing_volume*((z_dimension_volumen-1)/2));
reader->SetDataMask(0x7fff);
reader->UpdateWholeExtent();
// end of open file
//************************sagittal
// sagittal transform
sagittal_transform = vtkTransform::New();
sagittal_transform->RotateX(0);
sagittal_transform->RotateY(-90);
sagittal_transform->RotateZ(0);
// end sagittal transform
// sagittal cut
sagittal_reslice = vtkImageReslice::New();
sagittal_reslice->SetInput(reader->GetOutput());
sagittal_reslice->SetOutputSpacing(1,1,x_spacing_volume);
sagittal_reslice->SetResliceTransform(sagittal_transform);
sagittal_reslice->InterpolateOn();
sagittal_reslice->SetBackgroundLevel(1023);
//end of sagittal cut
// sagital cut to viewer
sagittal_viewer = vtkImageViewer::New();
sagittal_viewer->SetInput(sagittal_reslice->GetOutput());
sagittal_viewer->SetZSlice(x_dimension_volumen-1);
sagittal_viewer->SetColorWindow(2000);
sagittal_viewer->SetColorLevel(1000);
// end sagital cut to viewer
// assign actor to the sagittal renderer
renSagittal->AddActor2D(sagittal_viewer->GetActor2D());
// end assign actor to the sagittal renderer
//*****************************axial
// axial transform
axial_transform = vtkTransform::New();
axial_transform->RotateX(0);
axial_transform->RotateY(0);
axial_transform->RotateZ(0);
// end axial transform
// axial cut
axial_reslice = vtkImageReslice::New();
axial_reslice->SetInput(reader->GetOutput());
axial_reslice->SetOutputSpacing(1,1,z_spacing_volume);
axial_reslice->SetResliceTransform(axial_transform);
axial_reslice->InterpolateOn();
axial_reslice->SetBackgroundLevel(1023);
// end of axial cut
//axial cut to viewer
axial_viewer = vtkImageViewer::New();
axial_viewer->SetInput(axial_reslice->GetOutput());
axial_viewer->SetZSlice(0);
axial_viewer->SetColorWindow(2000);
axial_viewer->SetColorLevel(1000);
//end of axial cut to viewer
// assign actor to the axial renderer
renAxial->AddActor2D(axial_viewer->GetActor2D());
// end assign actor to the axial renderer
//*****************coronal
// coronal transform
coronal_transform = vtkTransform::New();
coronal_transform->RotateX(-90);
coronal_transform->RotateY(180);
coronal_transform->RotateZ(180);
// end coronal transform
// coronal cut
coronal_reslice = vtkImageReslice::New();
coronal_reslice->SetInput(reader->GetOutput());
coronal_reslice->SetOutputSpacing(1,1,y_spacing_volume);
coronal_reslice->SetResliceTransform(coronal_transform);
coronal_reslice->InterpolateOn();
coronal_reslice->SetBackgroundLevel(1023);
// end of coronal cut
// axial cut to viewer
coronal_viewer = vtkImageViewer::New();
coronal_viewer->SetInput(coronal_reslice->GetOutput());
coronal_viewer->SetZSlice(y_dimension_volumen-1);
coronal_viewer->SetColorWindow(2000);
coronal_viewer->SetColorLevel(1000);
// axial cut to viewer
// assign actor to the coronal renderer
renCoronal->AddActor2D(coronal_viewer->GetActor2D());
// end assign actor to the coronal renderer
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
More information about the vtkusers
mailing list