[vtkusers] vtkImageActor return error from function
    Jothy 
    jothybasu at gmail.com
       
    Fri Oct  1 07:33:01 EDT 2010
    
    
  
Hi all,
I am trying to get the vtkImageACtor form a function, but it says
vtkImageActor is protected.
I have tried even without vtkSmartPointer.
Here is the code!
Thanks
void MainWindow::imageReslice(int sliceValue)
{
this->imageData->GetWholeExtent(this->imgExtent);
//qDebug()<<imgExtent[0]<<imgExtent[1]<<imgExtent[2]<<imgExtent[3]<<imgExtent[4]<<imgExtent[5];
this->imageData->GetSpacing(this->imgSpacing);
//qDebug()<<this->imgSpacing[0]<< this->imgSpacing[1]<< this->imgSpacing[2];
this->imageData->GetOrigin(this->imgOrigin);
//qDebug()<<this->imgOrigin[0]<< this->imgOrigin[1]<< this->imgOrigin[2];
double center[3];
 center[0] = this->imgOrigin[0] + this->imgSpacing[0] * 0.5 *
(imgExtent[0] + imgExtent[1]);
 center[1] = this->imgOrigin[1] + this->imgSpacing[1] * 0.5 *
(imgExtent[2] + imgExtent[3]);
 center[2] = this->imgOrigin[2] + this->imgSpacing[2] * 0.5 *
(imgExtent[4] + imgExtent[5]);
 // Matrices for axial, coronal, sagittal, oblique view orientations
   static double axialElements[16] = {
            1, 0, 0,0 ,
            0, 1, 0, 0,
            0, 0, 1, sliceValue,
            0, 0, 0, 1 };
   //static double coronalElements[16] = {
   //         1, 0, 0, 0,
   //         0, 0, 1, 0,
   //         0,-1, 0, 0,
   //         0, 0, 0, 1 };
//   static double sagElements[16] = {
//             0, 0,-1, 0,
//            1, 0, 0, 0,
//            0,-1, 0, 0,
//            0, 0, 0, 1 };
//   // Set the slice orientation
    vtkSmartPointer<vtkMatrix4x4> resliceAxes =
      vtkSmartPointer<vtkMatrix4x4>::New();
    resliceAxes->DeepCopy(axialElements);
//    // 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->imageData);
    reslice->SetOutputDimensionality(2);
    reslice->SetResliceAxes(resliceAxes);
    reslice->SetInterpolationModeToLinear();
    // 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->SetInputConnection(reslice->GetOutputPort());
      // Return the image
   vtkSmartPointer<vtkImageActor>   imgActor =
vtkSmartPointer<vtkImageActor>::New();
    imgActor->SetInput(color->GetOutput());
   return imgActor;
}
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/20101001/b8a524f6/attachment.htm>
    
    
More information about the vtkusers
mailing list