00001
00002 #include <cstdlib>
00003 #include <oln/basics2d.hh>
00004
00005
00006
00007
00008 void usage(char* argv[])
00009 {
00010 std::cerr << "usage: " << argv[0] << " size output.pgm" << std::endl;
00011 std::cerr << "generate worst-case for salembier (Cf. najman)" << std::endl;
00012 exit(1);
00013 }
00014
00015 namespace oln {
00016
00017 template <typename I>
00018 void salembier_worstcase_image(abstract::image<I>& f)
00019 {
00020 oln_iter_type(I) p(f);
00021 unsigned char c = 0;
00022 for_all(p)
00023 if ((p.row() + p.col()) % 2)
00024 f[p] = 0;
00025 else
00026 f[p] = ++c;
00027 }
00028
00029 }
00030
00031
00032
00033
00034
00035
00036
00037
00038 int main(int argc, char* argv[])
00039 {
00040 using namespace oln;
00041
00042 if (argc != 3)
00043 usage(argv);
00044
00045 int size = atoi(argv[1]);
00046 if (size < 0)
00047 usage(argv);
00048
00049 image2d<ntg::int_u8> f(size, size);
00050 salembier_worstcase_image(f);
00051
00052 save(f, argv[2]);
00053 }