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
00027 #include <mln/core/image/image2d.hh>
00028 #include <mln/win/rectangle2d.hh>
00029 #include <mln/win/octagon2d.hh>
00030 #include <mln/win/diag2d.hh>
00031 #include <mln/win/backdiag2d.hh>
00032 #include <mln/core/alias/window2d.hh>
00033
00034 #include <mln/io/pgm/load.hh>
00035 #include <mln/io/pgm/save.hh>
00036
00037 #include <mln/value/int_u8.hh>
00038 #include <mln/data/fill.hh>
00039 #include <mln/morpho/dilation.hh>
00040
00041 #include <mln/pw/value.hh>
00042 #include <mln/pw/cst.hh>
00043 #include <mln/fun/ops.hh>
00044
00045 #include <mln/core/alias/neighb2d.hh>
00046
00047
00048
00049
00050 #if 0
00051 # include <mln/neighb/image.hh>
00052 #endif
00053
00054 #include "tests/data.hh"
00055
00056
00057 int main()
00058 {
00059 using namespace mln;
00060 using value::int_u8;
00061
00062
00063 border::thickness = 66;
00064
00065 image2d<int_u8> lena;
00066 io::pgm::load(lena, MLN_IMG_DIR "/lena.pgm");
00067 win::rectangle2d rec(5, 3);
00068
00069 {
00070 image2d<int_u8> out = morpho::dilation(lena, rec);
00071 io::pgm::save(out, "dilation-out1.pgm");
00072 }
00073
00074 {
00075 win::octagon2d oct(7);
00076 image2d<int_u8> out = morpho::dilation(lena, oct);
00077 io::pgm::save(out, "dilation-out2.pgm");
00078 }
00079
00080 {
00081 image2d<bool> bin(lena.domain());
00082 data::fill(bin, pw::value(lena) > pw::cst(127u));
00083 image2d<bool> out = morpho::dilation(bin, rec);
00084
00085 image2d<int_u8> test(lena.domain());
00086 image2d<int_u8>::fwd_piter p(lena.domain());
00087 for_all(p)
00088 test(p) = out(p) ? 255 : 0;
00089 io::pgm::save(test, "dilation-out3.pgm");
00090 }
00091
00092
00093
00094
00095 #if 0
00096 {
00097 image2d<int_u8> out = morpho::dilation(lena + c4());
00098 io::pgm::save(out, "dilation-out4.pgm");
00099 }
00100
00101 {
00102 image2d<int_u8> out = morpho::dilation(lena + c8());
00103 io::pgm::save(out, "dilation-out5.pgm");
00104 }
00105 #endif
00106 }