
* icdar/2009/hsc/icdar2ppm.cc, * icdar/2009/hsc/icdar2ppm.hh: new tool to convert icdar .dat files to ppm. --- milena/sandbox/ChangeLog | 8 ++++++ milena/sandbox/icdar/2009/hsc/icdar2ppm.cc | 16 ++++++++++++ milena/sandbox/icdar/2009/hsc/icdar2ppm.hh | 35 ++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 0 deletions(-) create mode 100644 milena/sandbox/icdar/2009/hsc/icdar2ppm.cc create mode 100644 milena/sandbox/icdar/2009/hsc/icdar2ppm.hh diff --git a/milena/sandbox/ChangeLog b/milena/sandbox/ChangeLog index c6a6156..681b6bf 100644 --- a/milena/sandbox/ChangeLog +++ b/milena/sandbox/ChangeLog @@ -1,5 +1,13 @@ 2009-04-07 Guillaume Lazzara <z@lrde.epita.fr> + Add icdar2ppm. + + * icdar/2009/hsc/icdar2ppm.cc, + * icdar/2009/hsc/icdar2ppm.hh: new tool to convert icdar .dat files to + ppm. + +2009-04-07 Guillaume Lazzara <z@lrde.epita.fr> + Update ICDAR code. * icdar/2009/hsc/lines_to_words.cc: Move some code... diff --git a/milena/sandbox/icdar/2009/hsc/icdar2ppm.cc b/milena/sandbox/icdar/2009/hsc/icdar2ppm.cc new file mode 100644 index 0000000..c4ba321 --- /dev/null +++ b/milena/sandbox/icdar/2009/hsc/icdar2ppm.cc @@ -0,0 +1,16 @@ +#include "icdar2ppm.hh" + +int main(int argc, char *argv[]) +{ + if (argc < 3) + { + std::cout << "Usage: " << argv[0] << " <input.pbm> <input.dat> <output.ppm>" << std::endl + << " HSC @ ICDAR'2009" << std::endl + << "input.pbm The original image. It is used to get the image dimension." << std::endl + << "input.dat The \"Ground truth\" data" << std::endl + << "output.ppm The PPM version of input.dat." << std::endl; + return 1; + } + + mln::icdar2ppm(argv[1], argv[2], argv[3]); +} diff --git a/milena/sandbox/icdar/2009/hsc/icdar2ppm.hh b/milena/sandbox/icdar/2009/hsc/icdar2ppm.hh new file mode 100644 index 0000000..eca8c84 --- /dev/null +++ b/milena/sandbox/icdar/2009/hsc/icdar2ppm.hh @@ -0,0 +1,35 @@ +#ifndef ICDAR2PPM_HH +# define ICDAR2PPM_HH + +# include <mln/core/image/image2d.hh> +# include <mln/value/label_8.hh> +# include <mln/value/rgb8.hh> +# include <mln/level/compute.hh> +# include <mln/accu/count_labels.hh> +# include <mln/debug/colorize.hh> +# include <mln/io/ppm/save.hh> +# include <mln/io/pbm/load.hh> + +# include "io/icdar/load.hh" + +namespace mln +{ + + void + icdar2ppm(const std::string& pbmfile, const std::string& icdarfile, + const std::string& ppmfile) + { + image2d<bool> ref; + io::pbm::load(ref, pbmfile); + + image2d<value::label_8> ima; + io::icdar::load(ima, icdarfile, ref.nrows(), ref.ncols()); + + value::label_8 nlines = level::compute(accu::meta::count_labels(), ima); + + io::ppm::save(debug::colorize(value::rgb8(), ima, nlines), ppmfile); + } + +} + +#endif // ! ICDAR2PPM_HH -- 1.5.6.5
participants (1)
-
Guillaume Lazzara