diff --git a/Code/BasicFilters/otbFrostImageFilter.txx b/Code/BasicFilters/otbFrostImageFilter.txx index c566b158f7d418d49fd76dd8e8a63cc5e0a29845..6ea4e0afa6c246f95fb58984cac2a9abd3ecc814 100644 --- a/Code/BasicFilters/otbFrostImageFilter.txx +++ b/Code/BasicFilters/otbFrostImageFilter.txx @@ -163,22 +163,22 @@ void FrostImageFilter<TInputImage, TOutputImage>::ThreadedGenerateData( NormFilter = 0.0; FrostFilter = 0.0; - const double rad_x = static_cast<double>(m_Radius[0]); - const double rad_y = static_cast<double>(m_Radius[1]); + const int rad_x = m_Radius[0]; + const int rad_y = m_Radius[1]; - for (double x = -rad_x; x <= rad_x; ++x) + for (int x = -rad_x; x <= rad_x; ++x) { - for (double y = -rad_y; y <= rad_y; ++y) + for (int y = -rad_y; y <= rad_y; ++y) { - double Dist = double(vcl_sqrt(x * x + y * y)); - off[0] = static_cast<int>(x); - off[1] = static_cast<int>(y); -// i = (unsigned int)((y+rad_y)*(2*rad_y+1)+(x+rad_x)); + double Dist = vcl_sqrt(x * x + y * y); + off[0] = x; + off[1] = y; + dPixel = static_cast<double>(bit.GetPixel(off)); -// dPixel= static_cast<double>( bit.GetPixel(i)); + CoefFilter = Alpha * vcl_exp(-Alpha * Dist); - NormFilter = NormFilter + CoefFilter; - FrostFilter = FrostFilter + (CoefFilter * dPixel); + NormFilter += CoefFilter; + FrostFilter += (CoefFilter * dPixel); } }