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/site_set/p_set.hh>
00027 #include <mln/core/image/image2d.hh>
00028 #include <mln/accu/center.hh>
00029 #include <mln/set/compute_with_weights.hh>
00030
00031
00032 int main()
00033 {
00034 using namespace mln;
00035
00036 {
00037 bool vals[] = { 1, 1, 0,
00038 1, 1, 1,
00039 0, 1, 1 };
00040 image2d<bool> msk = make::image2d(vals);
00041 accu::center<point2d,point2d> a;
00042 mln_assertion(set::compute_with_weights(a, msk) == point2d(1,1));
00043 }
00044
00045 {
00046 unsigned vals[] = { 3, 1, 0,
00047 1, 5, 1,
00048 0, 1, 3 };
00049 image2d<unsigned> w = make::image2d(vals);
00050 accu::center<point2d,point2d> a;
00051 mln_assertion(set::compute_with_weights(a, w) == point2d(1,1));
00052 }
00053
00054 {
00055 unsigned ws[] = { 1, 5, 0,
00056 0, 5, 0,
00057 0, 5, 1 };
00058 image2d<unsigned> w = make::image2d(ws);
00059
00060 unsigned ls[] = { 0, 1, 2,
00061 0, 1, 2,
00062 0, 1, 2 };
00063 image2d<unsigned> l = make::image2d(ls);
00064
00065 accu::center<point2d,point2d> a;
00066 util::array<point2d> p = set::compute_with_weights(a, w, l, 2);
00067
00068 for (unsigned l = 0; l <= 2; ++l)
00069 mln_assertion(p[l] == point2d(l, l));
00070 }
00071
00072 }