26 #ifndef MLN_LINEAR_LAP_HH
27 # define MLN_LINEAR_LAP_HH
34 # include <mln/linear/convolve.hh>
35 # include <mln/make/w_window2d.hh>
49 lap_4(const Image<I>& input);
53 lap_8(const Image<I>& input);
57 lap_x(const Image<I>& input);
61 lap_o(const Image<I>& input);
64 # ifndef MLN_INCLUDE_ONLY
71 lap_4(const
Image<I>& input)
73 trace::entering(
"linear::lap_4");
74 mln_precondition(exact(input).is_valid());
79 trace::exiting(
"linear::lap_4");
86 lap_8(const
Image<I>& input)
88 trace::entering(
"linear::lap_8");
89 mln_precondition(exact(input).is_valid());
94 trace::exiting("linear::lap_8");
101 lap_x(const Image<I>& input)
103 trace::entering(
"linear::lap_x");
104 mln_precondition(exact(input).is_valid());
105 int ws[] = { +2, -1, +2,
108 mln_ch_convolve(I,
int) output = convolve(input, make::w_window2d(ws));
109 trace::exiting("linear::lap_x");
113 template <typename I>
116 lap_o(const Image<I>& input)
118 trace::entering(
"linear::lap_o");
119 mln_precondition(exact(input).is_valid());
120 int ws[] = { -1, +2, -1,
123 mln_ch_convolve(I,
int) output = convolve(input, make::w_window2d(ws));
124 trace::exiting("linear::lap_o");
128 # endif // ! MLN_INCLUDE_ONLY
135 #endif // ! MLN_LINEAR_LAP_HH