From 26a2d7879544098d9bf49afd04133bed0ee657db Mon Sep 17 00:00:00 2001 From: Manuel Grizonnet <manuel.grizonnet@orfeo-toolbox.org> Date: Tue, 20 Nov 2012 16:03:56 -0300 Subject: [PATCH] ENH: simplify computation of Frost despeckle coefficients --- Code/BasicFilters/otbFrostImageFilter.txx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Code/BasicFilters/otbFrostImageFilter.txx b/Code/BasicFilters/otbFrostImageFilter.txx index c566b158f7..6ea4e0afa6 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); } } -- GitLab