
* apps/morphers/image2d-skel.hh * doc/DoxygenLayout.xml: Fix a page reference. * doc/examples.dox: New. * mln/canvas/browsing/backdiagonal2d.hh: Switch to \code. * mln/convert/to_image.hh: Remove useless inline keyword. * mln/core/internal/check/image_fastest.hh, * mln/core/internal/coord_impl.hh, * mln/core/internal/set_of.hh, * mln/data/compute_in_window.hh, * mln/debug/draw_graph.hh, * mln/io/pdf/load.hh: Fix documentation. * mln/linear/log.hh: New documentation. --- milena/ChangeLog | 23 ++++++ milena/apps/morphers/image2d-skel.hh | 8 +-- milena/doc/DoxygenLayout.xml | 2 +- milena/doc/examples.dox | 7 ++ milena/mln/canvas/browsing/backdiagonal2d.hh | 7 +- milena/mln/convert/to_image.hh | 10 +-- milena/mln/core/internal/check/image_fastest.hh | 26 +++---- milena/mln/core/internal/coord_impl.hh | 40 ++++++++--- milena/mln/core/internal/set_of.hh | 2 +- milena/mln/data/compute_in_window.hh | 14 +++- milena/mln/debug/draw_graph.hh | 14 ++-- milena/mln/io/pdf/load.hh | 85 +++++++++++++---------- milena/mln/linear/log.hh | 28 +++++++- 13 files changed, 177 insertions(+), 89 deletions(-) create mode 100644 milena/doc/examples.dox diff --git a/milena/ChangeLog b/milena/ChangeLog index 3aabd3b..3e0e5c3 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,28 @@ 2013-04-04 Guillaume Lazzara <z@lrde.epita.fr> + Kill Doxygen warnings. + + * apps/morphers/image2d-skel.hh + + * doc/DoxygenLayout.xml: Fix a page reference. + + * doc/examples.dox: New. + + * mln/canvas/browsing/backdiagonal2d.hh: Switch to \code. + + * mln/convert/to_image.hh: Remove useless inline keyword. + + * mln/core/internal/check/image_fastest.hh, + * mln/core/internal/coord_impl.hh, + * mln/core/internal/set_of.hh, + * mln/data/compute_in_window.hh, + * mln/debug/draw_graph.hh, + * mln/io/pdf/load.hh: Fix documentation. + + * mln/linear/log.hh: New documentation. + +2013-04-04 Guillaume Lazzara <z@lrde.epita.fr> + Cleanup concept documentation. * doc/mln/convert.dox, diff --git a/milena/apps/morphers/image2d-skel.hh b/milena/apps/morphers/image2d-skel.hh index 46dc3ff..cc332bc 100644 --- a/milena/apps/morphers/image2d-skel.hh +++ b/milena/apps/morphers/image2d-skel.hh @@ -56,7 +56,6 @@ public: /// Build a functor. /// /// \param nbh_fg The foreground neighborhood. - /// \param nbh_bg The background neighborhood. is_simple_2d(const mln::Neighborhood<N>& nbh_fg) : super(mln::exact(nbh_fg)), ima_(0) @@ -66,8 +65,7 @@ public: /// Build a functor, and assign an image to it. /// /// \param nbh_fg The foreground neighborhood. - /// \param nbh_bg The background neighborhood. - /// \apram ima The image. + /// \param ima The image. is_simple_2d(const mln::Neighborhood<N>& nbh_fg, const mln::Image<I>& ima) : super(mln::exact(nbh_fg)), @@ -106,8 +104,8 @@ struct is_not_end_point : public mln::Function_v2b< is_not_end_point<I, N> > { /// Build a functor, and assign an image to it. /// - /// \param nbh_fg The foreground neighborhood. - /// \apram ima The image. + /// \param nbh The foreground neighborhood. + /// \param ima The image. is_not_end_point(const mln::Neighborhood<N>& nbh, const mln::Image<I>& ima) : nbh_(mln::exact(nbh)), diff --git a/milena/doc/DoxygenLayout.xml b/milena/doc/DoxygenLayout.xml index 1aeee52..ae704ea 100644 --- a/milena/doc/DoxygenLayout.xml +++ b/milena/doc/DoxygenLayout.xml @@ -22,7 +22,7 @@ </tab> <tab type="examples" visible="yes" title="Examples" intro=""/> <tab type="user" url="@ref examples" title="Examples"/> - <tab type="user" url="@ref demos" title="Demos"/> + <tab type="user" url="http://caroussel.lrde.epita.fr/olena/demos" title="Demos"/> <tab type="user" url="http://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/Publications" title="Publications"/> </navindex> diff --git a/milena/doc/examples.dox b/milena/doc/examples.dox new file mode 100644 index 0000000..ef6845e --- /dev/null +++ b/milena/doc/examples.dox @@ -0,0 +1,7 @@ +/*! \page examples Examples + +\section examplerag Region Adjacency Graph + +\li \link region_adjacency_graph.cc + +*/ diff --git a/milena/mln/canvas/browsing/backdiagonal2d.hh b/milena/mln/canvas/browsing/backdiagonal2d.hh index 0961bdc..274fa01 100644 --- a/milena/mln/canvas/browsing/backdiagonal2d.hh +++ b/milena/mln/canvas/browsing/backdiagonal2d.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 EPITA Research and -// Development Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 EPITA +// Research and Development Laboratory (LRDE) // // This file is part of Olena. // @@ -58,6 +58,7 @@ namespace mln * - final(): Will be called at the end. * * F shall features : \n + \code - As types: + I; - As attributes: @@ -69,7 +70,7 @@ namespace mln + void init(); + void next(); + void final(); - \endverbatim + \endcode * * Example : \n * diff --git a/milena/mln/convert/to_image.hh b/milena/mln/convert/to_image.hh index 6f8bcda..71fde90 100644 --- a/milena/mln/convert/to_image.hh +++ b/milena/mln/convert/to_image.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -85,14 +86,13 @@ namespace mln # ifndef MLN_INCLUDE_ONLY template <typename S> - inline mln_image_from_grid(mln_site(S)::grid, bool) to_image(const Site_Set<S>& pset_, unsigned border) { const S& pset = exact(pset_); mln_image_from_grid(mln_site(S)::grid, bool) ima; ima.init_(geom::bbox(pset).to_larger(border)); - data::fill(ima, false); + mln::data::fill(ima, false); mln_piter(S) p(pset); for_all(p) ima(p) = true; @@ -100,7 +100,6 @@ namespace mln } template <typename W> - inline mln_image_from_grid(mln_site(W)::grid, bool) to_image(const Window<W>& win) { @@ -112,7 +111,6 @@ namespace mln } template <typename W> - inline mln_image_from_grid(mln_site(W)::grid, mln_weight(W)) to_image(const Weighted_Window<W>& w_win) { @@ -124,7 +122,6 @@ namespace mln } template <typename N> - inline mln_image_from_grid(mln_site(N)::grid, bool) to_image(const Neighborhood<N>& nbh) { @@ -133,7 +130,6 @@ namespace mln } template <typename T> - inline image1d<unsigned> to_image(const histo::array<T>& h) { diff --git a/milena/mln/core/internal/check/image_fastest.hh b/milena/mln/core/internal/check/image_fastest.hh index debece7..13665a9 100644 --- a/milena/mln/core/internal/check/image_fastest.hh +++ b/milena/mln/core/internal/check/image_fastest.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and +// Copyright (C) 2007, 2008, 2009, 2011, 2012, 2013 EPITA Research and // Development Laboratory (LRDE) // // This file is part of Olena. @@ -50,23 +50,21 @@ namespace mln namespace check { - /*! - \internal - \brief Statically checks the interface of fastest images. - */ + /// \brief Statically checks the interface of fastest images. template < typename E, typename B = metal::true_ > struct image_fastest_ { - /// \brief Give the offset of the site \p p. - /// - /// \param[in] p A site. - /// - /// \warning This method is final. - /// - /// \pre The image has to be initialized and to own the point \p p. - /// \post p == point_at_offset(result) - /// + /*! + \brief Give the offset of the site \p p. + + \param[in] p A site. + + \warning This method is final. + + \pre The image has to be initialized and to own the point \p p. + \post p == point_at_offset(result) + */ template <typename P> unsigned offset_of_point(const P& p) const; diff --git a/milena/mln/core/internal/coord_impl.hh b/milena/mln/core/internal/coord_impl.hh index e3b8de3..069ecd2 100644 --- a/milena/mln/core/internal/coord_impl.hh +++ b/milena/mln/core/internal/coord_impl.hh @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -41,70 +42,91 @@ namespace mln { - /// coord_impl + // coord_impl - /* Implementation class to equip generalized points with - * explicit access to their coordinates. - * - */ + /// \brief Implementation class to equip generalized points with + /// explicit access to their coordinates. template <unsigned n, typename C, typename E> struct coord_impl_; + /// \brief Specialization for 1D points. template <typename C, typename E> struct coord_impl_<1, C, E> { + /// Index. const C& ind() const; - private: - typedef coord_impl_<1, C, E> self_; - }; + /// \brief Specialization for 2D points. template <typename C, typename E> struct coord_impl_<2, C, E> { + /// Row index. const C&row() const; + /// Column index. const C&col() const; }; + /// \brief Specialization for 3D points. template <typename C, typename E> struct coord_impl_<3, C, E> { + /// Slice index. const C&sli() const; + /// Row index. const C&row() const; + /// Col index. const C&col() const; }; // mutable_coord_impl + /// \brief Implementation class to equip generalized points with + /// explicit access to their coordinates. template <unsigned n, typename C, typename E> struct mutable_coord_impl_; + /// \brief Specialization for 1D points. template <typename C, typename E> struct mutable_coord_impl_<1, C, E> { + /// Index. const C& ind() const; + /// Index. C& ind(); }; + /// \brief Specialization for 2D points. template <typename C, typename E> struct mutable_coord_impl_<2, C, E> { + /// Row index. const C& row() const; + /// Row index. C& row(); + /// Column index. const C& col() const; + /// Column index. C& col(); }; + /// \brief Specialization for 3D points. template <typename C, typename E> struct mutable_coord_impl_<3, C, E> { + /// Slice index. const C& sli() const; + /// Slice index. C& sli(); + /// Row index. const C& row() const; + /// Row index. C& row(); + /// Column index. const C& col() const; + /// Column index. C& col(); }; diff --git a/milena/mln/core/internal/set_of.hh b/milena/mln/core/internal/set_of.hh index f4d4bed..cdc599c 100644 --- a/milena/mln/core/internal/set_of.hh +++ b/milena/mln/core/internal/set_of.hh @@ -168,7 +168,7 @@ namespace mln }; - /*! Print a set \p s into the output stream \p + /* Print a set \p s into the output stream \p * ostr. * * \param[in,out] ostr An output stream. diff --git a/milena/mln/data/compute_in_window.hh b/milena/mln/data/compute_in_window.hh index 0ab1c84..0ddedb4 100644 --- a/milena/mln/data/compute_in_window.hh +++ b/milena/mln/data/compute_in_window.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2011, 2012 EPITA Research and Development Laboratory -// (LRDE) +// Copyright (C) 2011, 2012, 2013 EPITA Research and Development +// Laboratory (LRDE) // // This file is part of Olena. // @@ -49,6 +49,12 @@ namespace mln /*! \brief Compute an accumulator for each image pixel values * using neighbor pixel values. * + * \param[in] a An accumulator. + * \param[in] input The input image. + * \param[in] win A window. + * \return An image with the accumulator results as value for each + * site. + * * \ingroup mlnaccucompute */ template <typename A, typename I, typename W> @@ -60,7 +66,9 @@ namespace mln * * \param[in] a A meta-accumulator. * \param[in] input The input image. - * \return The accumulator result. + * \param[in] win A window. + * \return An image with the accumulator results as value for each + * site. * * \ingroup mlnaccucompute */ diff --git a/milena/mln/debug/draw_graph.hh b/milena/mln/debug/draw_graph.hh index abb8401..21cfcb4 100644 --- a/milena/mln/debug/draw_graph.hh +++ b/milena/mln/debug/draw_graph.hh @@ -71,12 +71,14 @@ namespace mln /*! \brief Draw an image \p ima from a mln::p_vertices \p pv. Colors for vertices are defined through \p vcolor_f_. Colors - for edges are defined though \p ecolor_f_. + for edges are defined though \p ecolor_f_. Vertices are drawn + with squares of width \p vwidth. \param[in,out] ima The image to be drawn. \param[in] pv The p_vertices which contains vertices positions. - \param[in] vcolor_f_ A function returning a color value for vertices. - \param[in] ecolor_f_ A function returning a color value for edges. + \param[in] vcolor_f A function returning a color value for vertices. + \param[in] ecolor_f A function returning a color value for edges. + \param[in] vwidth Width of the squares representing the vertices. \ingroup mlndebug */ @@ -104,8 +106,8 @@ namespace mln \param[in,out] ima The image to be drawn. \param[in] pv The p_vertices which contains vertices positions. - \param[in] vcolor_f_ A function returning a color value for vertices. - \param[in] ecolor_f_ A function returning a color value for edges. + \param[in] vcolor_f A function returning a color value for vertices. + \param[in] ecolor_f A function returning a color value for edges. \ingroup mlndebug */ @@ -114,7 +116,7 @@ namespace mln void draw_graph(Image<I>& ima, const p_vertices<util::line_graph<G>, F>& pv, - const Function<V>& vcolor_f_, const Function<E>& ecolor_f_); + const Function<V>& vcolor_f, const Function<E>& ecolor_f); # ifndef MLN_INCLUDE_ONLY diff --git a/milena/mln/io/pdf/load.hh b/milena/mln/io/pdf/load.hh index 63f5376..59b0736 100644 --- a/milena/mln/io/pdf/load.hh +++ b/milena/mln/io/pdf/load.hh @@ -45,80 +45,93 @@ namespace mln namespace pdf { - /**! Load a multiple page PDF document using libpoppler. + /**! \brief Load a multiple page PDF document using libpoppler. - \param[out] arr An array of images. - \param[in] filename The name of the input file. - \param[in] dpi Document resolution. + \param[out] arr An array of images. + \param[in] filename The name of the input file. + \param[in] dpi Document resolution. - Page numbering starts from 0. + Page numbering starts from 0. */ template <typename I> void load(util::array<I>& arr, const std::string& filename, float dpi); - /**! Load a range of pages from a PDF document using libpoppler. + /**! \overload - \param[out] arr An array of images. - \param[in] filename The name of the input file. - \param[in] first_page First page number. - \param[in] last_page Last page number. - \param[in] dpi Document resolution. + \brief Load a range of pages from a PDF document using + libpoppler. - Page numbering starts from 0. + \param[out] arr An array of images. + \param[in] filename The name of the input file. + \param[in] first_page First page number. + \param[in] last_page Last page number. + \param[in] dpi Document resolution. + + Page numbering starts from 0. */ template <typename I> void load(util::array<I>& arr, const std::string& filename, int first_page, int last_page, float dpi); - /**! Load specific pages from a PDF document using libpoppler. + /**! \overload + + \brief Load specific pages from a PDF document using + libpoppler. - \param[out] arr An array of images. - \param[in] filename The name of the input file. - \param[in] pages An array of pages numbers. - \param[in] dpi Document resolution. + \param[out] arr An array of images. + \param[in] filename The name of the input file. + \param[in] pages An array of pages numbers. + \param[in] dpi Document resolution. - Page numbering starts from 0. + Page numbering starts from 0. */ template <typename I> void load(util::array<I>& arr, const std::string& filename, util::array<int> pages, float dpi); - /**! Load a specific page from a PDF document using libpoppler. + /**! \overload + + \brief Load a specific page from a PDF document using + libpoppler. - \param[out] ima An image. - \param[in] filename The name of the input file. - \param[in] page The page number. - \param[in] dpi Document resolution. + \param[out] ima An image. + \param[in] filename The name of the input file. + \param[in] page The page number. + \param[in] dpi Document resolution. - Page numbering starts from 0. + Page numbering starts from 0. */ template <typename I> void load(Image<I>& ima, const std::string& filename, int page, float dpi); - /**! \overload Load a multiple page PDF document using libpoppler. + /**! \overload - \param[out] arr An array of images. - \param[in] filename The name of the input file. + \brief Load a multiple page PDF document using libpoppler. - DPI resolution is set to 300. - Page numbering starts from 0. + \param[out] arr An array of images. + \param[in] filename The name of the input file. + + DPI resolution is set to 300. + Page numbering starts from 0. */ template <typename I> void load(util::array<I>& arr, const std::string& filename); - /**! \overload Load specific pages from a PDF document using - libpoppler. + /**! \overload + + \brief Load specific pages from a PDF document using + libpoppler. - \param[out] arr An array of images. - \param[in] filename The name of the input file. - \param[in] pages An array of pages numbers. + \param[out] arr An array of images. + \param[in] filename The name of the input file. + \param[in] pages An array of pages numbers. - DPI resolution is set to 300. - Page numbering starts from 0. + DPI resolution is set to 300. + Page numbering starts from 0. */ template <typename I> void load(util::array<I>& arr, const std::string& filename, diff --git a/milena/mln/linear/log.hh b/milena/mln/linear/log.hh index 2e5e950..865f571 100644 --- a/milena/mln/linear/log.hh +++ b/milena/mln/linear/log.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development -// Laboratory (LRDE) +// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and +// Development Laboratory (LRDE) // // This file is part of Olena. // @@ -45,25 +45,45 @@ namespace mln { /*! \brief Laplacian of Gaussian. + + LoG_5x5 (Cf. Sonka et al., pages 85-86). + This is also a "mexican hat". + \ingroup mlnlinear */ - /// \{ template <typename I> mln_ch_convolve(I, int) LoG_5x5(const Image<I>& input); + /*! \brief Laplacian of Gaussian. + + LoG 7x7 (Cf. Russ, p. 250). + + \ingroup mlnlinear + */ template <typename I> mln_ch_convolve(I, int) LoG_7x7(const Image<I>& input); + /*! \brief Laplacian of Gaussian. + + LoG 13x13 (Cf. Russ, p. 250). + + \ingroup mlnlinear + */ template <typename I> mln_ch_convolve(I, int) LoG_13x13(const Image<I>& input); + /*! \brief Laplacian of Gaussian. + + LoG 17x17 (Cf. Sonka et al., pages 85-86). + + \ingroup mlnlinear + */ template <typename I> mln_ch_convolve(I, int) LoG_17x17(const Image<I>& input); - /// \} # ifndef MLN_INCLUDE_ONLY -- 1.7.2.5