X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=registration%2FclitkBSplineDeformableRegistrationGenericFilter.txx;h=c49a873644a4050df35e56c8406fd23e1605973b;hb=417fa02691e61ff52abb5ce74c81d767755aca7e;hp=8f399c08beb2b711003112f8344eec2952382a1f;hpb=e217697bd9c921fe6dc060dcd9f1af0a2519422e;p=clitk.git diff --git a/registration/clitkBSplineDeformableRegistrationGenericFilter.txx b/registration/clitkBSplineDeformableRegistrationGenericFilter.txx old mode 100755 new mode 100644 index 8f399c0..c49a873 --- a/registration/clitkBSplineDeformableRegistrationGenericFilter.txx +++ b/registration/clitkBSplineDeformableRegistrationGenericFilter.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 __clitkBSplineDeformableRegistrationGenericFilter_txx #define __clitkBSplineDeformableRegistrationGenericFilter_txx #include "clitkBSplineDeformableRegistrationGenericFilter.h" @@ -479,6 +479,7 @@ namespace clitk typename RegionType::SizeType gridBorderSize; typename RegionType::SizeType totalGridSize; +#if 0 //Set the number of control points for(unsigned int r=0; rGetSpacing(); + + // Only spacing given: adjust if necessary + if (m_ArgsInfo.spacing_given && !m_ArgsInfo.control_given) + { + for(unsigned int r=0; rGetDirection(); + SpacingType gridOriginOffset = gridDirection * adaptedSpacing; + + // Origin: 1 CP border for spatial dimensions + typedef typename BSplineTransformType::OriginType OriginType; + OriginType gridOrigin = transformRegionOrigin - gridOriginOffset; + if (m_Verbose) std::cout<<"The control point grid origin was set to "<SetGridSpacing( adaptedSpacing ); + bsplineTransform->SetGridOrigin( gridOrigin ); + bsplineTransform->SetGridRegion( bsplineRegion ); + bsplineTransform->SetGridDirection( gridDirection ); + + //Bulk transform + //if (m_Verbose) std::cout<<"Setting rigid transform..."<SetBulkTransform( rigidTransform ); + + //Vector BSpline interpolator + //bsplineTransform->SetOutputSpacing(fixedImage->GetSpacing()); + + // Initial parameters + if (m_ArgsInfo.init_given) + { + typedef itk::ImageFileReader CoefficientReaderType; + typename BSplineTransformType::ImageType::Pointer coeffImages[SpaceDimension]; + for(unsigned int i=0; iSetFileName(m_ArgsInfo.init_arg[i]); + coeffReader->Update(); + coeffImages[i]=coeffReader->GetOutput(); + } + bsplineTransform->SetCoefficientImage(coeffImages); + } + else + { + const unsigned int numberOfParameters = bsplineTransform->GetNumberOfParameters(); + parameters=ParametersType( numberOfParameters ); + parameters.Fill( 0.0 ); + bsplineTransform->SetParameters( parameters ); + } + + // Pass + transform=bsplineTransform; +#endif } @@ -571,10 +687,11 @@ namespace clitk typedef clitk::GenericMetric GenericMetricType; typename GenericMetricType::Pointer genericMetric=GenericMetricType::New(); genericMetric->SetArgsInfo(m_ArgsInfo); + genericMetric->SetFixedImage(fixedImage); + if (spatialObjectMask) genericMetric->SetFixedImageMask( spatialObjectMask ); genericMetric->SetFixedImageRegion(metricRegion); typedef itk::ImageToImageMetric< FixedImageType, MovingImageType > MetricType; typename MetricType::Pointer metric=genericMetric->GetMetricPointer(); - if (spatialObjectMask) metric->SetFixedImageMask( spatialObjectMask ); #ifdef ITK_USE_OPTIMIZED_REGISTRATION_METHODS if (threadsGiven) metric->SetNumberOfThreads( threads );