diff options
author | Alexandre Marie <alexandre.marie@synchrotron-soleil.fr> | 2019-07-09 10:20:20 +0200 |
---|---|---|
committer | Alexandre Marie <alexandre.marie@synchrotron-soleil.fr> | 2019-07-09 10:20:20 +0200 |
commit | 654a6ac93513c3cc1ef97cacd782ff674c6f4559 (patch) | |
tree | 3b986e4972de7c57fa465820367602fc34bcb0d3 /silx/math/medianfilter/include/median_filter.hpp | |
parent | a763e5d1b3921b3194f3d4e94ab9de3fbe08bbdd (diff) |
New upstream version 0.11.0+dfsg
Diffstat (limited to 'silx/math/medianfilter/include/median_filter.hpp')
-rw-r--r-- | silx/math/medianfilter/include/median_filter.hpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/silx/math/medianfilter/include/median_filter.hpp b/silx/math/medianfilter/include/median_filter.hpp index b4d953a..7e42980 100644 --- a/silx/math/medianfilter/include/median_filter.hpp +++ b/silx/math/medianfilter/include/median_filter.hpp @@ -1,6 +1,6 @@ /*########################################################################## # -# Copyright (c) 2017-2018 European Synchrotron Radiation Facility +# Copyright (c) 2017-2019 European Synchrotron Radiation Facility # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -126,6 +126,21 @@ inline int mirror(int index, int length_max){ return res; } +/* Provide a way to access NaN that also works for integers*/ + +template<typename T> +inline T NotANumber(void) { + assert(false); //This should never be called + return 0; +} + +template<> +inline float NotANumber<float>(void) { return NAN; } + +template<> +inline double NotANumber<double>(void) { return NAN; } + + // Browse the column of pixel_x template<typename T> void median_filter( @@ -244,8 +259,7 @@ void median_filter( if (window_size == 0) { // Window is empty, this is the case when all values are NaNs - output[image_dim[1]*y_pixel + x_pixel] = NAN; - + output[image_dim[1]*y_pixel + x_pixel] = NotANumber<T>(); } else { // apply the median value if needed for this pixel const T currentPixelValue = input[image_dim[1]*y_pixel + x_pixel]; |