27 #include <mln/core/image/image2d.hh>
28 #include <mln/value/int_u8.hh>
29 #include <mln/io/pgm/load.hh>
30 #include <mln/io/pbm/load.hh>
32 #include <mln/win/all.hh>
33 #include <mln/morpho/erosion.hh>
34 #include <mln/morpho/dilation.hh>
36 #include "tests/data.hh"
53 morpho::erosion_op ero;
54 morpho::dilation_op dil;
63 ref = morpho::impl::generic::general_on_function(ero, lena, rec);
65 out = morpho::impl::general_rectangle2d(ero, lena, rec);
66 mln_assertion(out == ref);
68 out = morpho::impl::general_arbitrary_2d(ero, lena, rec);
69 mln_assertion(out == ref);
71 out = morpho::impl::general_directional(ero, lena, rec, 0);
72 mln_assertion(out == ref);
74 out = morpho::impl::general_directional(ero, lena, rec, 1);
75 mln_assertion(out == ref);
80 ref = morpho::impl::generic::general_on_function(dil, lena, rec);
82 out = morpho::impl::general_rectangle2d(dil, lena, rec);
83 mln_assertion(out == ref);
85 out = morpho::impl::general_arbitrary_2d(dil, lena, rec);
86 mln_assertion(out == ref);
88 out = morpho::impl::general_directional(dil, lena, rec, 0);
89 mln_assertion(out == ref);
91 out = morpho::impl::general_directional(dil, lena, rec, 1);
92 mln_assertion(out == ref);
96 ref = morpho::impl::generic::general_on_function(ero, lena, hline);
98 out = morpho::impl::general_directional(ero, lena, hline, 1);
99 mln_assertion(out == ref);
101 out = morpho::impl::general_line(ero, lena, hline);
102 mln_assertion(out == ref);
106 ref = morpho::impl::generic::general_on_function(ero, lena, vline);
108 out = morpho::impl::general_directional(ero, lena, vline, 0);
109 mln_assertion(out == ref);
111 out = morpho::impl::general_line(ero, lena, vline);
112 mln_assertion(out == ref);
154 ref = morpho::impl::generic::general_on_set(ero, pic, rec);
156 out = morpho::impl::general_on_set_centered(ero, pic, rec);
157 mln_assertion(out == ref);
159 out = morpho::impl::general_on_set_centered_fastest(ero, pic, rec);
160 mln_assertion(out == ref);
162 out = morpho::impl::general_rectangle2d(ero, pic, rec);
163 mln_assertion(out == ref);
165 out = morpho::impl::general_arbitrary_2d(ero, pic, rec);
166 mln_assertion(out == ref);
168 out = morpho::impl::general_directional(ero, pic, rec, 0);
169 mln_assertion(out == ref);
171 out = morpho::impl::general_directional(ero, pic, rec, 1);
172 mln_assertion(out == ref);
177 ref = morpho::impl::generic::general_on_set(dil, pic, rec);
179 out = morpho::impl::general_on_set_centered(dil, pic, rec);
180 mln_assertion(out == ref);
182 out = morpho::impl::general_on_set_centered_fastest(dil, pic, rec);
183 mln_assertion(out == ref);
185 out = morpho::impl::general_rectangle2d(dil, pic, rec);
186 mln_assertion(out == ref);
188 out = morpho::impl::general_arbitrary_2d(dil, pic, rec);
189 mln_assertion(out == ref);
191 out = morpho::impl::general_directional(dil, pic, rec, 0);
192 mln_assertion(out == ref);
194 out = morpho::impl::general_directional(dil, pic, rec, 1);
195 mln_assertion(out == ref);