26 #include <mln/border/fill.hh>
27 #include <mln/data/fill.hh>
28 #include <mln/opt/element.hh>
29 #include <mln/core/image/image1d.hh>
30 #include <mln/core/image/image2d.hh>
31 #include <mln/core/image/image3d.hh>
32 #include <mln/value/int_u8.hh>
33 #include <mln/value/int_u16.hh>
34 #include <mln/value/int_s8.hh>
35 #include <mln/value/int_s16.hh>
36 #include <mln/value/rgb8.hh>
37 #include <mln/value/rgb16.hh>
38 #include <mln/value/float01_8.hh>
39 #include <mln/value/float01_16.hh>
40 #include <mln/debug/println_with_border.hh>
48 check1d(
unsigned row,
unsigned border,
T&
value,
T& v)
55 for(i = 0; i < border; ++i)
57 unsigned bo = border + row;
67 check2d(
unsigned row,
unsigned col,
unsigned border,
T& value,
T& v)
73 unsigned c = col + 2 * border;
74 unsigned r = row + 2 * border;
75 unsigned bo = c * border + border;
77 unsigned u = col + border;
80 for(i = 0; i < bo; ++i)
86 if (cur < border || cur >= u)
97 check3d(
unsigned sli,
unsigned row,
unsigned col,
unsigned border,
T& value,
T& v)
103 unsigned c = col + 2 * border;
104 unsigned r = row + 2 * border;
105 unsigned bo = c * border + border;
107 unsigned u = col + border;
110 for(i = 0; i < bo; ++i)
115 unsigned cur = i % c;
116 if (cur < border || cur >= u)
136 for (
int i = 1; i < limits; ++i)
137 for (
int j = 1; j < limits; ++j)
138 check1d(i, j, value, v);
140 for (
int i = 1; i < limits; ++i)
141 for (
int j = 1; j < limits; ++j)
142 for (
int k = 1; k < limits; ++k)
143 check2d(i, j, k, value, v);
151 for (
int i = 1; i < limits; ++i)
152 for (
int j = 1; j < limits; ++j)
153 check1d(i, j, value, v);
155 for (
int i = 1; i < limits; ++i)
156 for (
int j = 1; j < limits; ++j)
157 for (
int k = 1; k < limits; ++k)
158 check2d(i, j, k, value, v);
166 for (
int i = 1; i < limits; ++i)
167 for (
int j = 1; j < limits; ++j)
168 check1d(i, j, value, v);
170 for (
int i = 1; i < limits; ++i)
171 for (
int j = 1; j < limits; ++j)
172 for (
int k = 1; k < limits; ++k)
173 check2d(i, j, k, value, v);
181 for (
int i = 1; i < limits; ++i)
182 for (
int j = 1; j < limits; ++j)
183 check1d(i, j, value, v);
185 for (
int i = 1; i < limits; ++i)
186 for (
int j = 1; j < limits; ++j)
187 for (
int k = 1; k < limits; ++k)
188 check2d(i, j, k, value, v);
196 for (
int i = 1; i < limits; ++i)
197 for (
int j = 1; j < limits; ++j)
198 check1d(i, j, value, v);
200 for (
int i = 1; i < limits; ++i)
201 for (
int j = 1; j < limits; ++j)
202 for (
int k = 1; k < limits; ++k)
203 check2d(i, j, k, value, v);
211 for (
int i = 1; i < limits; ++i)
212 for (
int j = 1; j < limits; ++j)
213 check1d(i, j, value, v);
215 for (
int i = 1; i < limits; ++i)
216 for (
int j = 1; j < limits; ++j)
217 for (
int k = 1; k < limits; ++k)
218 check2d(i, j, k, value, v);
223 T value = T(255, 255, 255);
226 for (
int i = 1; i < limits; ++i)
227 for (
int j = 1; j < limits; ++j)
228 check1d(i, j, value, v);
230 for (
int i = 1; i < limits; ++i)
231 for (
int j = 1; j < limits; ++j)
232 for (
int k = 1; k < limits; ++k)
233 check2d(i, j, k, value, v);
238 T value = T(65535, 65535, 65535);
241 for (
int i = 1; i < limits; ++i)
242 for (
int j = 1; j < limits; ++j)
243 check1d(i, j, value, v);
245 for (
int i = 1; i < limits; ++i)
246 for (
int j = 1; j < limits; ++j)
247 for (
int k = 1; k < limits; ++k)
248 check2d(i, j, k, value, v);
254 T value =
static_cast<T
>(0.9999f);
255 T v =
static_cast<T
>(0.111f);
257 for (
int i = 1; i < limits; ++i)
258 for (
int j = 1; j < limits; ++j)
259 check1d(i, j, value, v);
261 for (
int i = 1; i < limits; ++i)
262 for (
int j = 1; j < limits; ++j)
263 for (
int k = 1; k < limits; ++k)
264 check2d(i, j, k, value, v);
269 T value =
static_cast<T
>(0.9999f);
270 T v =
static_cast<T
>(0.111f);
272 for (
int i = 1; i < limits; ++i)
273 for (
int j = 1; j < limits; ++j)
274 check1d(i, j, value, v);
276 for (
int i = 1; i < limits; ++i)
277 for (
int j = 1; j < limits; ++j)
278 for (
int k = 1; k < limits; ++k)
279 check2d(i, j, k, value, v);