00001 #include <mln/core/image/image2d.hh>
00002 #include <mln/core/alias/neighb2d.hh>
00003
00004 #include <mln/make/image.hh>
00005
00006 #include <mln/labeling/blobs.hh>
00007 #include <mln/labeling/colorize.hh>
00008 #include <mln/labeling/compute.hh>
00009
00010 #include <mln/util/array.hh>
00011
00012 #include <mln/accu/shape/bbox.hh>
00013
00014 #include <mln/value/label_8.hh>
00015
00016 #include <doc/tools/sample_utils.hh>
00017
00018 int main()
00019 {
00020 using namespace mln;
00021 using value::rgb8;
00022 using value::label_8;
00023
00024
00025
00026 bool vals[6][5] = {
00027 {0, 1, 1, 0, 0},
00028 {0, 1, 1, 0, 0},
00029 {0, 0, 0, 0, 0},
00030 {1, 1, 0, 1, 0},
00031 {1, 0, 1, 1, 1},
00032 {1, 0, 0, 0, 0}
00033 };
00034 image2d<bool> ima = make::image(vals);
00035
00036 doc::pbmsave(ima, "labeling-compute");
00037
00038
00039 label_8 nlabels;
00040 image2d<label_8> lbl = labeling::blobs(ima, c4(), nlabels);
00041
00042 doc::ppmsave(labeling::colorize(rgb8(), lbl, nlabels),
00043 "labeling-compute");
00044
00045
00046
00047 util::array<box2d> boxes =
00048 labeling::compute(accu::meta::shape::bbox(),
00049 lbl,
00050 nlabels);
00051
00052
00053
00054
00055 for (unsigned i = 1; i <= nlabels; ++i)
00056 std::cout << boxes[i] << std::endl;
00057
00058 }