
https://svn.lrde.epita.fr/svn/oln/trunk/swilena Index: ChangeLog from Roland Levillain <roland@lrde.epita.fr> Wrap mln::image2d<int_u8> as well as I/O routines. * pgm.ixx, int_u8.i, image2d_int_u8.i: New. * Makefile.am (EXTRA_DIST): Add pgm.ixx, image2d_int_u8.i and int_u8.i. * fill.ixx, println.ixx: Fix doxygen headers. * image2d_int.i: Typo. * python/lena.py: New test. * python/Makefile.am: Handle modules int_u8 and image2d_int_u8. (top_srcdir): Add top_srcdir and top_builddir into the environment. (TESTS): Add lena.py. * python/swilena.py: Import image2d_int_u8. Makefile.am | 6 +++-- fill.ixx | 2 - image2d_int.i | 2 - image2d_int_u8.i | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ int_u8.i | 38 ++++++++++++++++++++++++++++++++ pgm.ixx | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ println.ixx | 2 - python/Makefile.am | 27 +++++++++++++++++++---- python/lena.py | 39 +++++++++++++++++++++++++++++++++ python/swilena.py | 1 10 files changed, 229 insertions(+), 9 deletions(-) Index: python/lena.py --- python/lena.py (revision 0) +++ python/lena.py (revision 0) @@ -0,0 +1,39 @@ +#! /usr/bin/env python + +# Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE) +# +# This file is part of the Olena Library. This library is free +# software; you can redistribute it and/or modify it under the terms +# of the GNU General Public License version 2 as published by the +# Free Software Foundation. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this library; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Fifth Floor, +# Boston, MA 02111-1307, USA. +# +# As a special exception, you may use this file as part of a free +# software library without restriction. Specifically, if other files +# instantiate templates or use macros or inline functions from this +# file, or you compile this file and link it with other files to +# produce an executable, this file does not by itself cause the +# resulting executable to be covered by the GNU General Public +# License. +# reasons why the executable file might be covered by the GNU General +# Public License. + +import os +from swilena import * + +top_srcdir = os.environ["top_srcdir"] +img_dir = os.path.join(top_srcdir, "milena", "img") +lena = os.path.join (img_dir, "lena.pgm") + +ima = image2d_int_u8.load(lena) +eroded = image2d_int_u8.erosion (ima, win_c4p()) +image2d_int_u8.save(eroded, "out.pgm") Index: python/Makefile.am --- python/Makefile.am (revision 2105) +++ python/Makefile.am (working copy) @@ -50,6 +50,16 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_point2d-wrap.Pcc@am__quote@ nodist_python_PYTHON += point2d.py +## int_u8. +pyexec_LTLIBRARIES += _int_u8.la +nodist__int_u8_la_SOURCES = int_u8-wrap.cc +_int_u8_la_LIBADD = $(AM_LIBADD) +CLEANFILES += $(nodist__int_u8_la_SOURCES) int_u8.py int_u8.py[co] +## Include the dependency files. Copied from Automake's generated +## case for C++. +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_int_u8-wrap.Pcc@am__quote@ +nodist_python_PYTHON += int_u8.py + ## dpoint2d. pyexec_LTLIBRARIES += _dpoint2d.la nodist__dpoint2d_la_SOURCES = dpoint2d-wrap.cc @@ -80,6 +90,16 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_image2d_int-wrap.Pcc@am__quote@ nodist_python_PYTHON += image2d_int.py +## image2d_int_u8. +pyexec_LTLIBRARIES += _image2d_int_u8.la +nodist__image2d_int_u8_la_SOURCES = image2d_int_u8-wrap.cc +_image2d_int_u8_la_LIBADD = $(AM_LIBADD) +CLEANFILES += $(nodist__image2d_int_u8_la_SOURCES) image2d_int_u8.py image2d_int_u8.py[co] +## Include the dependency files. Copied from Automake's generated +## case for C++. +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/_image2d_int_u8-wrap.Pcc@am__quote@ +nodist_python_PYTHON += image2d_int_u8.py + ## ---------------------------- ## ## Swilena Python Shell (sps). ## @@ -103,9 +123,8 @@ include $(top_srcdir)/swilena/run.mk ## FIXME: Do we really need to pass top_srcdir and top_builddir to run? -##TESTS_ENVIRONMENT = \ -## top_srcdir="$(top_srcdir)" top_builddir="$(top_builddir)" $(RUN) -TESTS_ENVIRONMENT = $(RUN) +TESTS_ENVIRONMENT = \ + top_srcdir="$(top_srcdir)" top_builddir="$(top_builddir)" $(RUN) # Ensure `run' is rebuilt before the tests are run. $(TESTS): $(srcdir)/run.stamp # The dependency is on `run.in' and not `run', since `run' is @@ -119,5 +138,5 @@ $(MAKE) $(AM_MAKEFLAGS) $(RUN) @mv -f $@.tmp $@ -TESTS = test.py +TESTS = test.py lena.py EXTRA_DIST += $(TESTS) Index: python/swilena.py --- python/swilena.py (revision 2105) +++ python/swilena.py (working copy) @@ -33,3 +33,4 @@ from dpoint2d import * from window2d import * import image2d_int +import image2d_int_u8 Index: image2d_int_u8.i --- image2d_int_u8.i (revision 0) +++ image2d_int_u8.i (revision 0) @@ -0,0 +1,62 @@ +// -*- C++ -*- +// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of the Olena Library. This library is free +// software; you can redistribute it and/or modify it under the terms +// of the GNU General Public License version 2 as published by the +// Free Software Foundation. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02111-1307, USA. +// +// As a special exception, you may use this file as part of a free +// software library without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to +// produce an executable, this file does not by itself cause the +// resulting executable to be covered by the GNU General Public +// License. +// reasons why the executable file might be covered by the GNU General +// Public License. + +/// \file image2d.i +/// \brief A simple wrapping of mln::image2d<mln::value::int_u8> along +/// with some algorithms. + +%module image2d_int_u8 + +%import "int_u8.i" +// FIXME: The import directive does not include the `%{ ... %}' clauses. +// %{ +// #include "mln/value/int_u8.hh" +// %} +// +%include "image2d.ixx" +%template(image2d_int_u8) mln::image2d< mln::value::int_u<8> >; + +%include "pgm.ixx" +%template(load) mln::io::pgm::load< mln::value::int_u<8> >; +%template(save) mln::io::pgm::save< mln::image2d< mln::value::int_u<8> > >; + +%include "fill.ixx" +%template(fill) mln::level::fill< mln::image2d< mln::value::int_u<8> > >; + +%include "println.ixx" +%template(println) mln::debug::println< mln::image2d< mln::value::int_u<8> > >; + +%import "window2d.i" +// FIXME: The import directive does not include the `%{ ... %}' clauses. +%{ +#include "mln/core/window2d.hh" +%} + +%include "morpho.ixx" +%template(erosion) mln::morpho::erosion< mln::image2d< mln::value::int_u<8> >, + mln::window2d >; Index: pgm.ixx --- pgm.ixx (revision 0) +++ pgm.ixx (revision 0) @@ -0,0 +1,59 @@ +// -*- C++ -*- +// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of the Olena Library. This library is free +// software; you can redistribute it and/or modify it under the terms +// of the GNU General Public License version 2 as published by the +// Free Software Foundation. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02111-1307, USA. +// +// As a special exception, you may use this file as part of a free +// software library without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to +// produce an executable, this file does not by itself cause the +// resulting executable to be covered by the GNU General Public +// License. +// reasons why the executable file might be covered by the GNU General +// Public License. + +/// \file pgm.ixx +/// \brief A wrapper of mln::io::pgm::load and mln::io::pgm::save + +%module pgm + +%include std_string.i + +%{ +#include "mln/io/pgm/load.hh" +#include "mln/io/pgm/save.hh" +%} + +// Wrap mln::io::pgm::load(const std::string&) by hand, to force swig +// to choose this overloading. +namespace mln +{ + namespace io + { + namespace pgm + { + + template <typename V> + mln::image2d<V> load(const std::string& filename); + + } // end of namespace mln::io::pgm + + } // end of namespace mln::io + +} // end of namespace mln + +%include "mln/io/pgm/save.hh" Index: int_u8.i --- int_u8.i (revision 0) +++ int_u8.i (revision 0) @@ -0,0 +1,38 @@ +// -*- C++ -*- +// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE) +// +// This file is part of the Olena Library. This library is free +// software; you can redistribute it and/or modify it under the terms +// of the GNU General Public License version 2 as published by the +// Free Software Foundation. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this library; see the file COPYING. If not, write to +// the Free Software Foundation, 51 Franklin Street, Fifth Floor, +// Boston, MA 02111-1307, USA. +// +// As a special exception, you may use this file as part of a free +// software library without restriction. Specifically, if other files +// instantiate templates or use macros or inline functions from this +// file, or you compile this file and link it with other files to +// produce an executable, this file does not by itself cause the +// resulting executable to be covered by the GNU General Public +// License. +// reasons why the executable file might be covered by the GNU General +// Public License. + +/// \file int_u8.i +/// \brief A wrapper of mln::value::int_u8. + +%module int_u8 + +%{ +#include "mln/value/int_u8.hh" +%} + +%include "mln/value/int_u8.hh" Index: fill.ixx --- fill.ixx (revision 2105) +++ fill.ixx (working copy) @@ -26,7 +26,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/// \file fill.i +/// \file fill.ixx /// \brief A wrapper of mln::level::fill. %module fill Index: println.ixx --- println.ixx (revision 2105) +++ println.ixx (working copy) @@ -26,7 +26,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/// \file println.i +/// \file println.ixx /// \brief A wrapper of mln::debug::println. %{ Index: Makefile.am --- Makefile.am (revision 2105) +++ Makefile.am (working copy) @@ -3,8 +3,10 @@ SUBDIRS = python # Meta-wrappers (templates). -EXTRA_DIST = fill.ixx image2d.ixx intp.ixx morpho.ixx println.ixx +EXTRA_DIST = fill.ixx image2d.ixx intp.ixx morpho.ixx pgm.ixx println.ixx # Wrappers. -EXTRA_DIST += dpoint2d.i image2d_int.i point2d.i window2d.i +EXTRA_DIST += \ + dpoint2d.i image2d_int.i image2d_int_u8.i int_u8.i \ + point2d.i window2d.i check_SCRIPTS = run Index: image2d_int.i --- image2d_int.i (revision 2105) +++ image2d_int.i (working copy) @@ -43,7 +43,7 @@ %template(println) mln::debug::println< mln::image2d<int> >; %import "window2d.i" -// FIXME: The import directive does not import the `%{ ... %}' clauses. +// FIXME: The import directive does not include the `%{ ... %}' clauses. %{ #include "mln/core/window2d.hh" %}