[vtkusers] vtkImageReslice problem
    Jothy 
    jothybasu at gmail.com
       
    Mon Oct  4 09:22:03 EDT 2010
    
    
  
Hi all,
I am using vtkImageReslice to slice an 3D image data. But the problem is
whatever slice value I set, it return the same image.
Can someone have a look at the transformation matrix and the code, please?
// Calculate the center of the volume
      this->center[0] = this->origin[0] + this->spacing[0] * 0.5 *
(this->extent[0] + this->extent[1]);
      this->center[1] = this->origin[1] + this->spacing[1] * 0.5 *
(this->extent[2] + this->extent[3]);
      this->center[2] = this->origin[2] + this->spacing[2] * 0.5 *
(this->extent[4] +this->extent[5]);
      qDebug()<<this->center[0]<<this->center[1]<<this->center[2];
      // Matrices for axial, coronal, sagittal, oblique view orientations
//       double axialElements[16] = {
//               1, 0, 0, 0,
//               0, 1, 0, 1,
//               0, 0, 1, sliceA,
//               0, 0, 0, 1 };
      static double coronalElements[16] = {
               1, 0, 0, 0,
               0, 0, 1, sliceA,
               0,-1, 0, 0,
               0, 0, 0, 1 };
//      static double sagittalElements[16] = {
//               0, 0,-1, 0,
//               1, 0, 0, 0,
//               0,-1, 0, 0,
//               0, 0, 0, 1 };
      //static double obliqueElements[16] = {
      //         1, 0, 0, 0,
      //         0, 0.866025, -0.5, 0,
      //         0, 0.5, 0.866025, 0,
      //         0, 0, 0, 1 };
      // Set the slice orientation
      vtkSmartPointer<vtkMatrix4x4> resliceAxes =
        vtkSmartPointer<vtkMatrix4x4>::New();
      resliceAxes->DeepCopy(coronalElements);
      // Set the point through which to slice
      resliceAxes->SetElement(0, 3, center[0]);
      resliceAxes->SetElement(1, 3, center[1]);
      resliceAxes->SetElement(2, 3, center[2]);
      // Extract a slice in the desired orientation
      vtkSmartPointer<vtkImageReslice> reslice =
        vtkSmartPointer<vtkImageReslice>::New();
      reslice->SetInput(this->imgData);
      reslice->SetOutputDimensionality(2);
      reslice->SetResliceAxesOrigin(10,20,20);
      reslice->SetResliceAxes(resliceAxes);
      reslice->SetInterpolationModeToLinear();
//      reslice->GetOutput()->UpdateInformation();
//      reslice->GetOutput()->UpdateData();
//       reslice->GetOutput()->Update();
      // Create a greyscale lookup table
      vtkSmartPointer<vtkLookupTable> table =
        vtkSmartPointer<vtkLookupTable>::New();
      table->SetRange(-300, 900); // 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
      vtkSmartPointer<vtkImageMapToColors> color =
        vtkSmartPointer<vtkImageMapToColors>::New();
      color->SetLookupTable(table);
      color->SetInput(reslice->GetOutput());
      // Display the image
    this->actor =vtkImageActor::New();
      actor->SetInput(color->GetOutput());
      vtkSmartPointer<vtkRenderer> renderer =
        vtkSmartPointer<vtkRenderer>::New();
      renderer->AddActor(actor);
//      vtkSmartPointer<vtkRenderWindow> window =
//        vtkSmartPointer<vtkRenderWindow>::New();
      this->ui->AxialWidget->GetRenderWindow()->AddRenderer(renderer);
      // Set up the interaction
      vtkSmartPointer<vtkInteractorStyleImage> imageStyle =
        vtkSmartPointer<vtkInteractorStyleImage>::New();
      vtkSmartPointer<vtkRenderWindowInteractor> interactor =
        vtkSmartPointer<vtkRenderWindowInteractor>::New();
      interactor->SetInteractorStyle(imageStyle);
      this->ui->AxialWidget->GetRenderWindow()->SetInteractor(interactor);
      this->ui->AxialWidget->GetRenderWindow()->Render();
     // this->ui->AxialWidget->show();
Thanks,
Jothy
-- 
Research Scholar
Dept. of Medical Physics
Clatterbridge Centre for Oncology
UK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20101004/bb3c6e3f/attachment.htm>
    
    
More information about the vtkusers
mailing list