00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00029
00030 #include <mln/core/image/image2d.hh>
00031 #include <mln/io/pbm/load.hh>
00032
00033 #include <mln/make/neighb2d.hh>
00034 #include <mln/labeling/blobs.hh>
00035
00036 #include <mln/io/ppm/save.hh>
00037 #include <mln/labeling/colorize.hh>
00038 #include <mln/value/rgb8.hh>
00039
00040 #include <mln/fun/p2p/fold.hh>
00041 #include <mln/core/image/dmorph/transformed_image.hh>
00042
00043
00044
00045 int main()
00046 {
00047 using namespace mln;
00048
00049 image2d<bool> world = io::pbm::load("world.pbm");
00050
00051 bool large[] = { 1, 1, 1, 1, 1,
00052 1, 1, 1, 1, 1,
00053 1, 1, 0, 1, 1,
00054 1, 1, 1, 1, 1,
00055 1, 1, 1, 1, 1 };
00056 neighb2d nbh = make::neighb2d(large);
00057
00058 unsigned n;
00059 image2d<unsigned> labeled = labeling::blobs(world, nbh, n);
00060
00061 io::ppm::save(labeling::colorize(value::rgb8(), labeled, n),
00062 "world.ppm");
00063
00064
00065 fun::p2p::fold<point2d,0,1> f(world.domain());
00066 labeled = labeling::blobs(transform_domain(world, f), nbh, n).unmorph_();
00067
00068 io::ppm::save(labeling::colorize(value::rgb8(), labeled, n),
00069 "world_bis.ppm");
00070 }