X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkImageCreate.cxx;h=d84bbb51400c0d4a7fbfd45091baead16f4d4ce8;hb=543b72e23ad001ac2a7743b9beacf48e2d0054ac;hp=ab2bec514673ced6d5f1313d3477dfa94015feda;hpb=765020625fbc092d283e221e36c83e60a1844cb7;p=clitk.git diff --git a/tools/clitkImageCreate.cxx b/tools/clitkImageCreate.cxx index ab2bec5..d84bbb5 100644 --- a/tools/clitkImageCreate.cxx +++ b/tools/clitkImageCreate.cxx @@ -31,23 +31,35 @@ #include "clitkIO.h" template -void NewFilledImage(int * size, float * spacing, double * origin, +void NewFilledImage(int * size, float * spacing, double * origin, double * direction, double value,typename ImageType::Pointer output) { static const unsigned int Dim = ImageType::GetImageDimension(); + typename ImageType::SizeType mSize; mSize.Fill (0); for(unsigned int i=0; iSetRegions(mRegion); output->SetSpacing(mSpacing); + output->SetDirection(directionImage); output->Allocate(); + typename ImageType::PointType mOrigin; for(unsigned int i=0; iSetOrigin(mOrigin); + typedef typename ImageType::PixelType PixelType; PixelType p = clitk::PixelTypeDownCast(value); output->FillBuffer(p); @@ -75,11 +87,15 @@ int main(int argc, char * argv[]) args_info.spacing_arg = new float[dim]; args_info.origin_given = dim; args_info.origin_arg = new double[dim]; + args_info.transformMatrix_given = dim*dim; + args_info.transformMatrix_arg = new double[dim*dim]; for(int i=0; iGetDimensions(i); args_info.spacing_arg[i] = header->GetSpacing(i); args_info.origin_arg[i]= header->GetOrigin(i); + for (int j=0; jGetDirection(i)[j]; } } @@ -119,27 +135,50 @@ int main(int argc, char * argv[]) for(int i=0; i direction; + direction.resize(dim*dim); + for(int i=0; i ImageType; ImageType::Pointer output = ImageType::New(); - NewFilledImage(args_info.size_arg, &spacing[0], &origin[0], args_info.value_arg, output); + NewFilledImage(args_info.size_arg, &spacing[0], &origin[0], &direction[0], args_info.value_arg, output); clitk::writeImage(output, args_info.output_arg); } if (dim == 3) { const int Dim=3; typedef itk::Image ImageType; ImageType::Pointer output = ImageType::New(); - NewFilledImage(args_info.size_arg, &spacing[0], &origin[0], args_info.value_arg, output); + NewFilledImage(args_info.size_arg, &spacing[0], &origin[0], &direction[0], args_info.value_arg, output); clitk::writeImage(output, args_info.output_arg); } if (dim == 4) { const int Dim=4; typedef itk::Image ImageType; ImageType::Pointer output = ImageType::New(); - NewFilledImage(args_info.size_arg, &spacing[0], &origin[0], args_info.value_arg, output); + NewFilledImage(args_info.size_arg, &spacing[0], &origin[0], &direction[0], args_info.value_arg, output); clitk::writeImage(output, args_info.output_arg); }