27 #ifndef MLN_GEOM_CHAMFER_HH
28 # define MLN_GEOM_CHAMFER_HH
34 # include <mln/canvas/chamfer.hh>
44 template <
typename I,
typename W>
45 mln_ch_value(I,
unsigned)
46 chamfer(const Image<I>& input_, const W& w_win_,
47 unsigned max = mln_max(
unsigned));
50 # ifndef MLN_INCLUDE_ONLY
57 template <
typename I_,
typename W_>
61 typedef mln_ch_value(I,
unsigned) O;
63 typedef mln_site(I_) P;
76 mln_piter(O) p(output.domain());
87 void init() {
initialize(output, exact(input));
94 bool handles(
const P& p)
const {
return input(p) ==
false; }
99 chamfer_t(
const I_& input,
const W_& win,
unsigned max)
112 template <
typename I,
typename W>
113 mln_ch_value(I,
unsigned)
117 trace::entering(
"mln::geom::chamfer");
120 const I& input = exact(input_);
121 const W& w_win = exact(w_win_);
123 typedef impl::chamfer_t<I, W> F;
125 F f(input, w_win, max);
128 trace::exiting(
"mln::geom::chamfer");
132 #endif // ! MLN_INCLUDE_ONLY
138 #endif // ! MLN_GEOM_CHAMFER_HH