https://svn.lrde.epita.fr/svn/oln/trunk/swilena
Index: ChangeLog
from Roland Levillain <roland(a)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"
%}