27 #ifndef MLN_LINEAR_LAP_HH
28 # define MLN_LINEAR_LAP_HH
37 # include <mln/linear/convolve.hh>
38 # include <mln/make/w_window2d.hh>
53 mln_ch_convolve(I,
int)
54 lap_4(const Image<I>& input);
57 mln_ch_convolve(I,
int)
58 lap_8(const Image<I>& input);
61 mln_ch_convolve(I,
int)
62 lap_x(const Image<I>& input);
65 mln_ch_convolve(I,
int)
66 lap_o(const Image<I>& input);
69 # ifndef MLN_INCLUDE_ONLY
75 mln_ch_convolve(I,
int)
76 lap_4(const Image<I>& input)
78 mln_trace(
"linear::lap_4");
79 mln_precondition(
exact(input).is_valid());
83 mln_ch_convolve(I,
int) output =
convolve(input, make::w_window2d(ws));
89 mln_ch_convolve(I,
int)
90 lap_8(const Image<I>& input)
92 mln_trace(
"linear::lap_8");
93 mln_precondition(
exact(input).is_valid());
97 mln_ch_convolve(I,
int) output =
convolve(input, make::w_window2d(ws));
101 template <typename I>
103 mln_ch_convolve(I,
int)
104 lap_x(const Image<I>& input)
106 mln_trace(
"linear::lap_x");
107 mln_precondition(
exact(input).is_valid());
108 int ws[] = { +2, -1, +2,
111 mln_ch_convolve(I,
int) output =
convolve(input, make::w_window2d(ws));
115 template <typename I>
117 mln_ch_convolve(I,
int)
118 lap_o(const Image<I>& input)
120 mln_trace(
"linear::lap_o");
121 mln_precondition(
exact(input).is_valid());
122 int ws[] = { -1, +2, -1,
125 mln_ch_convolve(I,
int) output =
convolve(input, make::w_window2d(ws));
129 # endif // ! MLN_INCLUDE_ONLY
136 #endif // ! MLN_LINEAR_LAP_HH