[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