X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FvvImage.txx;h=a84fa76669d7a317655d725e9e2e8371fd8f133c;hb=24fb0576a860ea843722b1d84561186542b62fd5;hp=c0eda2082e75f756e44a7fa33caa828e8848e22b;hpb=c13d024475699d94ed1018a1e3be7cce91f1de97;p=clitk.git diff --git a/common/vvImage.txx b/common/vvImage.txx index c0eda20..a84fa76 100755 --- a/common/vvImage.txx +++ b/common/vvImage.txx @@ -4,6 +4,7 @@ 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(); @@ -11,7 +12,17 @@ void vvImage::AddItkImage(TItkImageType *input) 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. + vtkSmartPointer matrix = vtkSmartPointer::New(); + matrix->Identity(); + for(unsigned int j=0; jGetImageDimension(); j++) + for(unsigned int i=0; iGetImageDimension(); i++) + (*matrix)[i][j] = input->GetDirection()[i][j]; + mTransform->SetMatrix(matrix); + + // Create the corresponding transformed image mVtkImageReslice.push_back(vtkSmartPointer::New()); mVtkImageReslice.back()->SetInterpolationModeToLinear(); mVtkImageReslice.back()->AutoCropOutputOn();