X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=registration%2FitkOptMeanSquaresImageToImageMetricFor3DBLUTFFD.txx;h=02427a397d50e586ef70dc381ffff5541c6114fb;hb=HEAD;hp=cf173407bf7310fd4e4a921f4b278c2053f5e0a1;hpb=d0bf1f6de5086e58c5bbefcee178609763790f61;p=clitk.git diff --git a/registration/itkOptMeanSquaresImageToImageMetricFor3DBLUTFFD.txx b/registration/itkOptMeanSquaresImageToImageMetricFor3DBLUTFFD.txx index cf17340..02427a3 100644 --- a/registration/itkOptMeanSquaresImageToImageMetricFor3DBLUTFFD.txx +++ b/registration/itkOptMeanSquaresImageToImageMetricFor3DBLUTFFD.txx @@ -100,7 +100,11 @@ MeanSquaresImageToImageMetricFor3DBLUTFFD template void MeanSquaresImageToImageMetricFor3DBLUTFFD +#if ( ( ITK_VERSION_MAJOR == 4 ) && ( ITK_VERSION_MINOR > 12 ) || ( ITK_VERSION_MAJOR > 4 )) +::Initialize(void) +#else ::Initialize(void) throw ( ExceptionObject ) +#endif { this->Superclass::Initialize(); @@ -109,13 +113,22 @@ MeanSquaresImageToImageMetricFor3DBLUTFFD if(m_ThreaderMSE != NULL) { delete [] m_ThreaderMSE; } +#if ITK_VERSION_MAJOR <= 4 m_ThreaderMSE = new double[this->m_NumberOfThreads]; +#else + m_ThreaderMSE = new double[this->m_NumberOfWorkUnits]; +#endif if(m_ThreaderMSEDerivatives != NULL) { delete [] m_ThreaderMSEDerivatives; } +#if ITK_VERSION_MAJOR <= 4 m_ThreaderMSEDerivatives = new DerivativeType[this->m_NumberOfThreads]; for(unsigned int threadID=0; threadIDm_NumberOfThreads; threadID++) { +#else + m_ThreaderMSEDerivatives = new DerivativeType[this->m_NumberOfWorkUnits]; + for(unsigned int threadID=0; threadIDm_NumberOfWorkUnits; threadID++) { +#endif m_ThreaderMSEDerivatives[threadID].SetSize( this->m_NumberOfParameters ); } } @@ -147,15 +160,14 @@ MeanSquaresImageToImageMetricFor3DBLUTFFD itkExceptionMacro( << "Fixed image has not been assigned" ); } - memset( m_ThreaderMSE, - 0, - this->m_NumberOfThreads * sizeof(MeasureType) ); +#if ITK_VERSION_MAJOR <= 4 + memset( m_ThreaderMSE, 0, this->m_NumberOfThreads * sizeof(MeasureType) ); +#else + memset( m_ThreaderMSE, 0, this->m_NumberOfWorkUnits * sizeof(MeasureType) ); +#endif // Set up the parameters in the transform this->m_Transform->SetParameters( parameters ); -#if ITK_VERSION_MAJOR < 4 - this->m_Parameters = parameters; -#endif // MUST BE CALLED TO INITIATE PROCESSING this->GetValueMultiThreadedInitiate(); @@ -174,7 +186,11 @@ MeanSquaresImageToImageMetricFor3DBLUTFFD } double mse = m_ThreaderMSE[0]; +#if ITK_VERSION_MAJOR <= 4 for(unsigned int t=1; tm_NumberOfThreads; t++) { +#else + for(unsigned int t=1; tm_NumberOfWorkUnits; t++) { +#endif mse += m_ThreaderMSE[t]; } mse /= this->m_NumberOfPixelsCounted; @@ -215,12 +231,8 @@ MeanSquaresImageToImageMetricFor3DBLUTFFD } // Jacobian should be evaluated at the unmapped (fixed image) point. -#if ITK_VERSION_MAJOR >= 4 TransformJacobianType jacobian; transform->ComputeJacobianWithRespectToParameters(this->m_FixedImageSamples[fixedImageSample].point, jacobian); -#else - const TransformJacobianType & jacobian = transform ->GetJacobian( this->m_FixedImageSamples[fixedImageSample].point ); -#endif //double sum; unsigned int par, dim; for( par=0; parm_NumberOfParameters; par+=3) { @@ -257,14 +269,13 @@ MeanSquaresImageToImageMetricFor3DBLUTFFD // Set up the parameters in the transform this->m_Transform->SetParameters( parameters ); -#if ITK_VERSION_MAJOR < 4 - this->m_Parameters = parameters; -#endif // Reset the joint pdfs to zero - memset( m_ThreaderMSE, - 0, - this->m_NumberOfThreads * sizeof(MeasureType) ); +#if ITK_VERSION_MAJOR <= 4 + memset( m_ThreaderMSE, 0, this->m_NumberOfThreads * sizeof(MeasureType) ); +#else + memset( m_ThreaderMSE, 0, this->m_NumberOfWorkUnits * sizeof(MeasureType) ); +#endif // Set output values to zero if(derivative.GetSize() != this->m_NumberOfParameters) { @@ -274,7 +285,11 @@ MeanSquaresImageToImageMetricFor3DBLUTFFD 0, this->m_NumberOfParameters * sizeof(double) ); +#if ITK_VERSION_MAJOR <= 4 for( unsigned int threadID = 0; threadIDm_NumberOfThreads; threadID++ ) { +#else + for( unsigned int threadID = 0; threadIDm_NumberOfWorkUnits; threadID++ ) { +#endif memset( m_ThreaderMSEDerivatives[threadID].data_block(), 0, this->m_NumberOfParameters * sizeof(double) ); @@ -297,7 +312,11 @@ MeanSquaresImageToImageMetricFor3DBLUTFFD } value = 0; +#if ITK_VERSION_MAJOR <= 4 for(unsigned int t=0; tm_NumberOfThreads; t++) { +#else + for(unsigned int t=0; tm_NumberOfWorkUnits; t++) { +#endif value += m_ThreaderMSE[t]; for(unsigned int parameter = 0; parameter < this->m_NumberOfParameters; parameter++) {