X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkBackProjectImageGenericFilter.txx;h=d5a552d3e582cd56a1ab8f3276adb069ee406acc;hb=543b72e23ad001ac2a7743b9beacf48e2d0054ac;hp=01dfe6ae32a62e66030f3d6756d6cf1b2feb1046;hpb=573d80d0f7a17607d2ee883c21c940c0ba020282;p=clitk.git diff --git a/tools/clitkBackProjectImageGenericFilter.txx b/tools/clitkBackProjectImageGenericFilter.txx old mode 100755 new mode 100644 index 01dfe6a..d5a552d --- a/tools/clitkBackProjectImageGenericFilter.txx +++ b/tools/clitkBackProjectImageGenericFilter.txx @@ -34,7 +34,7 @@ namespace clitk //================================================================================ template void BackProjectImageGenericFilter::UpdateWithPixelType() { - + //--------------------------------- // Define the images //--------------------------------- @@ -51,79 +51,87 @@ namespace clitk const unsigned int OutputImageDimension=3; typedef float OutputPixelType; typedef itk::Image OutputImageType; - + //Create the BackProjectImageFilter typedef BackProjectImageFilter BackProjectImageFilterType; typename BackProjectImageFilterType::Pointer filter=BackProjectImageFilterType::New(); - + //--------------------------------- //Pass all the necessary parameters //--------------------------------- unsigned int i=0; filter->SetInput(input); - if (m_ArgsInfo.threads_given) filter->SetNumberOfThreads(m_ArgsInfo.threads_arg); - + if (m_ArgsInfo.threads_given) { +#if ITK_VERSION_MAJOR <= 4 + filter->SetNumberOfThreads(m_ArgsInfo.threads_arg); +#else + filter->SetNumberOfWorkUnits(m_ArgsInfo.threads_arg); +#endif + } + //Projection parameters OutputImageType::PointType iso; if (m_ArgsInfo.iso_given) - { - for(i=0;iSetIsoCenter(iso); - } + { + for(i=0;iSetIsoCenter(iso); + } + if (m_ArgsInfo.panel_shift_given) + filter->SetPanelShift(m_ArgsInfo.panel_shift_arg[0], m_ArgsInfo.panel_shift_arg[1]); filter->SetSourceToScreen(m_ArgsInfo.screen_arg); filter->SetSourceToAxis(m_ArgsInfo.axis_arg); filter->SetProjectionAngle(m_ArgsInfo.angle_arg); if (m_ArgsInfo.matrix_given) - { - itk::Matrix rt =ReadMatrix3D(m_ArgsInfo.matrix_arg); - filter->SetRigidTransformMatrix(rt); - } + { + itk::Matrix rt =ReadMatrix3D(m_ArgsInfo.matrix_arg); + filter->SetRigidTransformMatrix(rt); + } filter->SetEdgePaddingValue(static_cast(m_ArgsInfo.pad_arg)); - + //Output image info if (m_ArgsInfo.like_given) - { - typedef itk::ImageFileReader ReaderType; - ReaderType::Pointer reader2=ReaderType::New(); - reader2->SetFileName(m_ArgsInfo.like_arg); - reader2->Update(); + { + typedef itk::ImageFileReader ReaderType; + ReaderType::Pointer reader2=ReaderType::New(); + reader2->SetFileName(m_ArgsInfo.like_arg); + reader2->Update(); - OutputImageType::Pointer image=reader2->GetOutput(); - filter->SetOutputParametersFromImage(image); - } + OutputImageType::Pointer image=reader2->GetOutput(); + filter->SetOutputParametersFromImage(image); + } else + { + if(m_ArgsInfo.origin_given) { - if(m_ArgsInfo.origin_given) - { - OutputImageType::PointType origin; - for(i=0;iSetOutputOrigin(origin); - } - if (m_ArgsInfo.spacing_given) - { - OutputImageType::SpacingType spacing; - for(i=0;iSetOutputSpacing(spacing); - } - if (m_ArgsInfo.spacing_given) - { - OutputImageType::SizeType size; - for(i=0;iSetOutputSize(size); - } + OutputImageType::PointType origin; + for(i=0;iSetOutputOrigin(origin); } + if (m_ArgsInfo.spacing_given) + { + OutputImageType::SpacingType spacing; + for(i=0;iSetOutputSpacing(spacing); + } + if (m_ArgsInfo.spacing_given) + { + OutputImageType::SizeType size; + for(i=0;iSetOutputSize(size); + } + } //Go filter->Update(); - + //Get the output OutputImageType::Pointer output=filter->GetOutput(); - + //Write the output typedef itk::ImageFileWriter OutputWriterType; OutputWriterType::Pointer outputWriter = OutputWriterType::New();