26 #ifndef MLN_LINEAR_GAUSSIAN_FILTER_HH
27 # define MLN_LINEAR_GAUSSIAN_FILTER_HH
36 # include <mln/core/concept/image.hh>
37 # include <mln/linear/gaussian/impl.hh>
38 # include <mln/linear/gaussian/internal/coefficients.hh>
56 filter(const Image<I>& input,
double sigma);
61 filter(const Image<I>& input,
double sigma,
int dir);
65 # ifndef MLN_INCLUDE_ONLY
82 filter(const Image<I>& input,
double sigma,
int dir)
84 trace::entering(
"linear::gaussian::filter");
86 mln_precondition(exact(input).is_valid());
87 mln_precondition(dir < I::site::dim);
89 mln_concrete(I) output;
92 internal::coefficients coef = internal::coefficients_not_derivative(sigma);
94 impl::generic_filter_common_(mln_trait_value_nature(mln_value(I))(),
95 input, coef, sigma, output, dir);
97 trace::exiting("linear::
gaussian::filter");
109 template <typename I>
112 filter(const Image<I>& input,
double sigma)
114 trace::entering(
"linear::gaussian::filter");
116 mln_precondition(exact(input).is_valid());
118 mln_concrete(I) output;
121 internal::coefficients coef = internal::coefficients_not_derivative(sigma);
123 impl::generic_filter_common_(mln_trait_value_nature(mln_value(I))(),
124 input, coef, sigma, output);
126 trace::exiting("linear::
gaussian::filter");
131 # endif // ! MLN_INCLUDE_ONLY
140 #endif // ! MLN_LINEAR_GAUSSIAN_FILTER_HH