rpc_maxtree.cc

00001 
00002 #include <cstdlib>
00003 
00004 #include <ntg/int.hh>
00005 #include <oln/basics2d.hh>
00006 #include <oln/lrde/ufmt/rpc_maxtree.hh>
00007 #include <oln/lrde/ufmt/log.hh>
00008 
00009 
00010 
00011 void usage(char* argv[])
00012 {
00013   std::cerr << "usage: " << argv[0] << " input.pgm c" << std::endl;
00014   std::cerr << "max-tree computation with union-find" << std::endl;
00015   std::cerr << "  r. for raster video scan" << std::endl;
00016   std::cerr << "  p. image<point>" << std::endl;
00017   std::cerr << "  c. level compression" << std::endl;
00018   std::cerr << "inspecting neighbors leads to 'insert' then 'updates'" << std::endl;
00019   exit(1);
00020 }
00021 
00022 
00023 int main(int argc, char* argv[])
00024 {
00025   if (argc != 3)
00026     usage(argv);
00027 
00028   using namespace oln;
00029   typedef image2d<ntg::int_u8> image_t;
00030 
00031   image_t input = load(argv[1]);
00032 
00033   int c = atoi(argv[2]);
00034   if (not (c == 4 or c == 8))
00035     usage(argv);
00036 
00037   typedef lrde::ufmt::rpc_maxtree<image_t> algorithm_t;
00038 
00039   algorithm_t run(input,
00040                   c == 4 ? neighb_c4() : neighb_c8());
00041   run.go();
00042   std::cout << "n level roots = " << n_level_roots(run) << std::endl;
00043 }

Generated on Tue Feb 20 20:20:31 2007 for Olena by  doxygen 1.5.1