diff --git a/Code/ChangeDetection/otbCorrelationChangeDetector.h b/Code/ChangeDetection/otbCorrelationChangeDetector.h index a87c8f11d4b8900d12fdcb64d95ff1af327b6164..b9c71dac0fe33e8d44b81b22e8df00e976e6952a 100755 --- a/Code/ChangeDetection/otbCorrelationChangeDetector.h +++ b/Code/ChangeDetection/otbCorrelationChangeDetector.h @@ -89,14 +89,17 @@ public: TOutput crossCorrel = 0.0; - for(unsigned long pos = 0; pos< itA.Size(); ++pos) - { - if(varA!=0 && varB!=0) + if(varA!=0 && varB!=0) { - crossCorrel += (static_cast<TOutput>(itA.GetPixel(pos))-meanA)*(static_cast<TOutput>(itB.GetPixel(pos))-meanB)/(itA.Size()*vcl_sqrt(varA*varB)); + for(unsigned long pos = 0; pos< itA.Size(); ++pos) + { + crossCorrel += (static_cast<TOutput>(itA.GetPixel(pos))-meanA)*(static_cast<TOutput>(itB.GetPixel(pos))-meanB)/(itA.Size()*vcl_sqrt(varA*varB)); + } } + else if(varA==0 && varB==0) + { + crossCorrel = 1; } - return static_cast<TOutput>( 1.0-crossCorrel ); } };