[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