#include //-------------------------------------------------------------------- template void vvImage::AddItkImage(TItkImageType *input) { // Convert from ITK object to VTK object mImageDimension = TItkImageType::ImageDimension; typedef itk::ImageToVTKImageFilter ConverterType; typename ConverterType::Pointer converter = ConverterType::New(); mItkToVtkConverters.push_back(dynamic_cast< itk::ProcessObject *>(converter.GetPointer())); converter->SetInput(input); converter->Update(); mVtkImages.push_back( converter->GetOutput() ); // Account for direction in transform. The offset is already accounted for // in the VTK image coordinates, no need to put it in the transform. for(unsigned int j=0; jGetImageDimension(); j++) for(unsigned int i=0; iGetImageDimension(); i++) mTransform->GetMatrix()->SetElement(i,j, input->GetDirection()[i][j]); // Create the corresponding transformed image mVtkImageReslice.push_back(vtkSmartPointer::New()); mVtkImageReslice.back()->SetInterpolationModeToLinear(); mVtkImageReslice.back()->AutoCropOutputOn(); mVtkImageReslice.back()->SetBackgroundColor(-1000,-1000,-1000,1); mVtkImageReslice.back()->SetResliceTransform(mTransform); mVtkImageReslice.back()->SetInput(0, converter->GetOutput()); mVtkImageReslice.back()->UpdateInformation(); mTransformedVtkImages.push_back( mVtkImageReslice.back()->GetOutput(0) ); } //--------------------------------------------------------------------