[vtkusers] vtkImageReslice and vtkImageResample, different behaviour between 32-bit and 64-bit platform

jimmigoo jimmigoo at gmail.com
Thu Jan 27 03:25:19 EST 2011


Hi David!
Thanks for the fast reply!
I tried to change just these two code lines
      reslice->SetOutputSpacing(xResolution,yResolution,1); 
      resample->SetAxisOutputSpacing(2, 1); 
but it didn't work again. 
So, I tried to change other two code lines 
      reslice->SetOutputExtent(0,XExtent-1,0,YExtent-1,0,1); 
      resample->SetOutputExtent(0,XExtent-1,0,YExtent-1,0,1); 
but it didn't work again. 

Do you know how I have to change the code to make it workable?
I'm looking for your reply!
Best regards, 
jimmigoo


void ResampleDTM() 
{ 
      //------------- open original file ---------------------------------- 
      vtkStructuredPointsReader* imageReader =
vtkStructuredPointsReader::New(); 
      imageReader->SetFileName(“SaintHelene.vtk”); 
      imageReader->Update(); 
      //------------- reslice original vtkImageData ------------------------ 
      vtkImageReslice* reslice = vtkImageReslice::New(); 
      reslice->SetInput(imageReader->GetOutput()); 
      reslice->SetOutputOrigin(X0,Y0,0); 
      reslice->SetOutputSpacing(xResolution,yResolution,1); 
      int XExtent = (int)((Xmax_new- Xmin_new)/xResolution); 
      int YExtent = (int)((Ymax_new- Ymin_new)/yResolution); 
      reslice->SetOutputExtent(0,XExtent-1,0,YExtent-1,0,1); 
      reslice->Update(); 
      //------------- resample original vtkImageData
------------------------ 
      vtkImageResample * resample = vtkImageResample::New(); 
      resample->SetInputConnection(0, reslice->GetOutputPort()); 
      resample->SetDimensionality(3); 
      resample->SetAxisMagnificationFactor(0,1.0); 
      resample->SetAxisMagnificationFactor(1,1.0); 
      resample->SetAxisMagnificationFactor(2,1.0); 
  
      XExtent = (int)((Xmax_new- Xmin_new)/xResolution_new); 
      YExtent = (int)((Ymax_new- Ymin_new)/yResolution_new); 
  
      resample->SetOutputOrigin(X0_new,Y0_new,0); 
      resample->SetOutputExtent(0,XExtent-1,0,YExtent-1,0,1); 
      resample->SetAxisOutputSpacing(0, xResolution_new); 
      resample->SetAxisOutputSpacing(1, yResolution_new); 
      resample->SetAxisOutputSpacing(2, 1); 
      resample->Update(); 
      vtkImageData* map = resample->GetOutput(); 
      map->GetPointData()->GetArray(0)->SetName("cellvar"); 
      //------------- write resampled file
---------------------------------- 
      vtkStructuredPointsWriter* fileWriter =
vtkStructuredPointsWriter::New(); 
      fileWriter->SetFileTypeToBinary(); 
      fileWriter->SetInput(resample->GetOutput()); 
      fileWriter->SetFileName(“output.vtk”); 
      fileWriter->Write(); 
      //----------------- clean up
------------------------------------------ 
      fileWriter->Delete(); 
      resample->Delete(); 
      reslice->Delete(); 
      imageReader->Delete(); 
     
//--------------------------------------------------------------------- 
} 
-- 
View this message in context: http://vtk.1045678.n5.nabble.com/vtkImageReslice-and-vtkImageResample-different-behaviour-between-32-bit-and-64-bit-platform-tp3358830p3359347.html
Sent from the VTK - Users mailing list archive at Nabble.com.



More information about the vtkusers mailing list