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
00026 #include <mln/core/image/image2d.hh>
00027 #include <mln/core/alias/neighb2d.hh>
00028 #include <mln/core/site_set/p_array.hh>
00029 #include <mln/data/sort_psites.hh>
00030 #include <mln/data/compare.hh>
00031
00032 #include <mln/debug/println.hh>
00033 #include <mln/core/var.hh>
00034
00035 #include <mln/morpho/tree/data.hh>
00036 #include <mln/morpho/tree/compute_attribute_image.hh>
00037
00038 #include <mln/morpho/attribute/card.hh>
00039 #include <mln/morpho/attribute/volume.hh>
00040
00041
00042 int main()
00043 {
00044 using namespace mln;
00045
00046 {
00047 unsigned char vals[] = { 3, 2, 1,
00048 3, 2, 3,
00049 3, 4, 1 };
00050
00051 typedef image2d<unsigned char> I;
00052 I f = make::image2d(vals);
00053 debug::println(f);
00054
00055 typedef p_array<point2d> S;
00056 S s = data::sort_psites_increasing(f);
00057
00058 morpho::tree::data<I,S> t(f, s, c4());
00059 debug::println(t.parent_image());
00060
00061 {
00062 morpho::attribute::card<I> a;
00063 image2d<unsigned> area = morpho::tree::compute_attribute_image(a, t);
00064 image2d<unsigned> area_bis = morpho::tree::compute_attribute_image_from(a, t, f);
00065 debug::println(area);
00066 mln_assertion(area == area_bis);
00067 }
00068
00069 {
00070 morpho::attribute::volume<I> v;
00071 image2d<unsigned> volume = morpho::tree::compute_attribute_image(v, t);
00072 image2d<unsigned> volume_bis = morpho::tree::compute_attribute_image_from(v, t, f);
00073 debug::println(volume);
00074 mln_assertion(volume == volume_bis);
00075 }
00076 }
00077
00078 }