X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=itk%2FclitkComposeVFFilter.txx;h=e42c8520e66392f5619162be817b2f6b32b5f03e;hb=a523f5be1e221995c0d4d29a0077b5e8b984c96d;hp=c456d8210fdb2b1789c1f090a5468b881b255990;hpb=a26cd8a19e1b9ad8344ab501436045f171a73713;p=clitk.git diff --git a/itk/clitkComposeVFFilter.txx b/itk/clitkComposeVFFilter.txx old mode 100755 new mode 100644 index c456d82..e42c852 --- a/itk/clitkComposeVFFilter.txx +++ b/itk/clitkComposeVFFilter.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 __clitkComposeVFFilter_txx #define __clitkComposeVFFilter_txx #include "clitkComposeVFFilter.h" @@ -36,7 +36,7 @@ namespace clitk //========================================================================================================================= //update the output for the outputRegionForThread template - void ComposeVFFilter::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, int threadId ) + void ComposeVFFilter::ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId ) { //Get pointer to the output @@ -98,7 +98,7 @@ namespace clitk { // The following block is equivalent to the following line without // having to call floor. (Only for positive inputs, we already now that is in the image) - // baseIndex[dim] = (long) vcl_floor(contIndex[dim] ); + // baseIndex[dim] = (long) std::floor(contIndex[dim] ); baseIndex[dim] = (long) contIndex[dim]; distance[dim] = contIndex[dim] - double( baseIndex[dim] ); @@ -116,7 +116,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 +129,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;