[vtkusers] vtkImageReslice problem

Xiaofeng Z xf10036 at hotmail.com
Mon Oct 4 09:28:25 EDT 2010


I think the problem is with this:
 
     reslice->SetResliceAxesOrigin(10,20,20);      reslice->SetResliceAxes(resliceAxes);
The SetResliceAxes overwrites what SetResliceAxesOrigin does.

Xiaofeng Zhao



 


Date: Mon, 4 Oct 2010 14:22:03 +0100
From: jothybasu at gmail.com
To: vtkusers at vtk.org
Subject: [vtkusers] vtkImageReslice problem


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


_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ Follow this link to subscribe/unsubscribe: http://www.vtk.org/mailman/listinfo/vtkusers 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20101004/76053a66/attachment.htm>


More information about the vtkusers mailing list