X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=itk%2FclitkComposeVFFilter.txx;h=a50ca26a38ee2556751e7af18c7a8913e852546a;hb=9dfed934fdeca8343992272c4292a8c7ed755329;hp=b02de1bd9f3d14c068f96f263e9d72ec7fd9b5ff;hpb=08d1fd56ac1d08bd228d9e557f5472a395e9b708;p=clitk.git diff --git a/itk/clitkComposeVFFilter.txx b/itk/clitkComposeVFFilter.txx index b02de1b..a50ca26 100644 --- a/itk/clitkComposeVFFilter.txx +++ b/itk/clitkComposeVFFilter.txx @@ -35,8 +35,13 @@ namespace clitk //========================================================================================================================= //update the output for the outputRegionForThread +#if ITK_VERSION_MAJOR >= 4 + template + void ComposeVFFilter::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId ) +#else template void ComposeVFFilter::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, int threadId ) +#endif { //Get pointer to the output @@ -116,7 +121,8 @@ namespace clitk // get neighbor index and overlap fraction - for( dim = 0; dim < 3; dim++ ) + bool neighbIndexSupZero = 1; + for( dim = 0; dim < ImageDimension; dim++ ) { if ( upper & 1 ) { @@ -128,12 +134,14 @@ namespace clitk neighIndex[dim] = baseIndex[dim]; overlap *= 1.0 - distance[dim]; } + if (neighIndex[dim] < 0) + neighbIndexSupZero = 0; upper >>= 1; } //JV shouldn't we verify that the index is not over the upper border instead of zero? // Set neighbor value only if overlap is not zero and index is still in image - if( overlap>0.0 && neighIndex[0]>=0 && neighIndex[1]>=0 && neighIndex[2]>=0 ) + if ( overlap>0.0 && neighbIndexSupZero ) { //what to store? the weighted displacement vector of Input2? totalDisplacement+=m_Input2->GetPixel(neighIndex)*overlap;