26 #include <mln/core/image/image2d.hh>
27 #include <mln/io/pgm/all.hh>
28 #include <mln/util/timer.hh>
29 #include <mln/core/alias/neighb2d.hh>
30 #include <mln/morpho/attribute/volume.hh>
31 #include <mln/morpho/attribute/card.hh>
32 #include <mln/morpho/leveling_filter.hh>
33 #include <mln/morpho/algebraic_filter.hh>
35 #include "tests/data.hh"
37 int main(
int argc,
char** argv)
44 std::cout <<
"Usage: ./connected_filter lambda" << std::endl;
55 int lambda = atoi(argv[1]);
60 std::cout <<
"Test with card attribute:" << std::endl;
62 out = mln::canvas::morpho::attribute_filter(lena,
c4(),
c2, lambda,
true);
63 elapsed = chrono.stop();
64 std::cout <<
"(Full auto) " << elapsed <<
"s" << std::endl;
68 out = mln::morpho::algebraic_filter(lena,
c4(),
c2, lambda,
true);
69 elapsed = chrono.stop();
70 std::cout <<
"(Algebraic Auto) " << elapsed <<
"s" << std::endl;
74 out = mln::canvas::morpho::internal::attribute_filter_dispatch(metal::false_(), lena,
c4(),
c2, lambda,
true);
75 elapsed = chrono.stop();
76 std::cout <<
"(Force Slow) " << elapsed <<
"s" << std::endl;
82 std::cout <<
"Test with volume attribute:" << std::endl;
84 out = mln::canvas::morpho::attribute_filter(lena,
c4(), c, lambda,
true);
85 elapsed = chrono.stop();
86 std::cout <<
"(Full auto) " << elapsed <<
"s" << std::endl;
90 out = mln::morpho::leveling_filter(lena,
c4(), c, lambda,
true);
91 elapsed = chrono.stop();
92 std::cout <<
"(Leveling Auto) " << elapsed <<
"s" << std::endl;
96 out = mln::canvas::morpho::internal::attribute_filter_dispatch(metal::false_(), lena,
c4(), c, lambda,
true);
97 elapsed = chrono.stop();
98 std::cout <<
"(Force Slow) " << elapsed <<
"s" << std::endl;