27 #ifndef MLN_GEOM_CHAMFER_HH
28 # define MLN_GEOM_CHAMFER_HH
34 # include <mln/canvas/chamfer.hh>
47 template <
typename I,
typename W>
48 mln_ch_value(I,
unsigned)
49 chamfer(const Image<I>& input_, const W& w_win_,
50 unsigned max = mln_max(
unsigned));
53 # ifndef MLN_INCLUDE_ONLY
60 template <
typename I_,
typename W_>
64 typedef mln_ch_value(I,
unsigned) O;
66 typedef mln_site(I_) P;
79 mln_piter(O)
p(output.domain());
97 bool handles(
const P& p)
const {
return input(p) ==
false; }
102 chamfer_t(
const I_& input,
const W_& win,
unsigned max)
115 template <
typename I,
typename W>
116 mln_ch_value(I,
unsigned)
117 chamfer(const Image<I>& input_, const W& w_win_,
120 mln_trace(
"mln::geom::chamfer");
123 const I& input =
exact(input_);
124 const W& w_win =
exact(w_win_);
126 typedef impl::chamfer_t<I, W> F;
128 F f(input, w_win, max);
129 canvas::chamfer<F> run(f);
134 #endif // ! MLN_INCLUDE_ONLY
140 #endif // ! MLN_GEOM_CHAMFER_HH