X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkBackProjectImageGenericFilter.txx;h=d5a552d3e582cd56a1ab8f3276adb069ee406acc;hb=f48c960aef6e0a5a4edea516b062197db009e25f;hp=2e3e4e5688e05a4cb6723e70902bdb61b26c5b8e;hpb=a26cd8a19e1b9ad8344ab501436045f171a73713;p=clitk.git diff --git a/tools/clitkBackProjectImageGenericFilter.txx b/tools/clitkBackProjectImageGenericFilter.txx old mode 100755 new mode 100644 index 2e3e4e5..d5a552d --- a/tools/clitkBackProjectImageGenericFilter.txx +++ b/tools/clitkBackProjectImageGenericFilter.txx @@ -3,7 +3,7 @@ Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,7 +14,7 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html -======================================================================-====*/ +===========================================================================**/ #ifndef CLITKBACKPROJECTIMAGEGENERICFILTER_TXX #define 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();