Olena-patches
Threads by month
- ----- 2025 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
April 2013
- 7 participants
- 363 discussions
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/TL has been updated
via 3d74e203c5bccd50cd39ef03524cdbf817d094ac (commit)
via ea3a438edd681ee2c2d9d864b4cb9b80d3c5c867 (commit)
via b2a998874f37d267f32ebb987eb1719fd5c2ebcb (commit)
via 4f717cc024f5c959d509d24343a1d4e03ab08bbd (commit)
via 602fc924083865cbe104660c0f724added5ed48f (commit)
via f73de90629e04d201f470cd438ba7842275d5b90 (commit)
via 0167ba81a2e5cdd0d9b88488a46b068dd0a8eb68 (commit)
via 37c9012be49ccb3517c887d0a9e42f973fbe19df (commit)
via a8d117672fb512482f7a098499a41e99a53fa445 (commit)
via 00a1e3480ea7c57d1b82d336a658127223f7c173 (commit)
via 61eb85aae63899be7b13c45c08e022bb6cd223ac (commit)
via b14fad47f31cd31e47452c2997c4e80377eb7669 (commit)
via 1cd17e32b4fc61239195c688394cd92c3fc44167 (commit)
via efabb3bcb01ae366f463abf4fa14303efce4cda7 (commit)
via 276ad3db3217651981534e7a5908c0b8954d2502 (commit)
via bd478ecf1a53fd1c42b3c267f220aab3f146c4ca (commit)
via 81824c6b2a74d526744302b38a5479989c961f76 (commit)
via 92344248afe3b83428d1db46b156e745451e5ce5 (commit)
via ce97be8f1743324174f965410d1249994eba3e8d (commit)
via 289bcac105fb22c53d37d73a32c1f1402bc5c358 (commit)
via 83d9bff14f8b49b346c6342855d612a37c58cfd0 (commit)
via aa8db8d1be7bdf624312762a1630355d3fec543a (commit)
via e2f4e925bc23a4698abe15108d0ec754bbf67c29 (commit)
via 07333d2c000f65cfabcc4702b704b5abf4126278 (commit)
via 1a302adfd37c3aebe33a477d64cb0304150e37c9 (commit)
via b0051dcaccff406bf3176e17f4abfb95a71822dd (commit)
via 13b61491d6933f69e26cb421e1448f094351cae9 (commit)
via 77d7b3a938fe16dc7216117a80158007706e1236 (commit)
via 9cf87e52f51dbc3344e7aca36a884b8ae0892bed (commit)
via ce8691742261a97e214f5e99024e319cc9e761e2 (commit)
via 9df9980fe8d9d1b2e7cd68ef41aa6bad00f261c0 (commit)
via 002e0e957be01c8a22605d884b9b1dd591e1ee5b (commit)
via 592a16814171acc776241e80db25673125619bda (commit)
via 979d54b458e41fc3bac8f347742d6a42a03df2a1 (commit)
via 22f1827a91aba6dd05a98e784d53d4e76a1498cd (commit)
via 733ef50fa2606d41c09badbe0f2204d16a806d61 (commit)
via 02fa89bb503205bdda6c35b477db63d637e36d31 (commit)
via 1b8c3754d59e04b11e38b19232b138e8cc42f8eb (commit)
via 11438e15a022b02513161e8191679c4409d6b4be (commit)
via 07973346bd57c8bef7e0346c28b6469da5db91e2 (commit)
via b3c468886a96090e094f3c7d79e48e489954997f (commit)
via 81e04f2a8a3166a165634524c0a73d7e9dc4f952 (commit)
via 0987e7f285f366e8129e1c1d439367e269932279 (commit)
via 17105bad97c497797a9f5ac257aca1b25c9a3678 (commit)
via 1c93a61f5b62f6ca9d96b8349d5140874adc0bce (commit)
via dde0e23d75e77e157992b656322044fad5c1f9e1 (commit)
via bc91dfb5dd05ce8b4f6b68f7f4eec1926b3aef0f (commit)
via 73774f40bae141b0b7cf507d6df8893279a46ea7 (commit)
via c173d75dba1a8d8a03c8fee43947145d2570ab64 (commit)
via 52ab07c654f83ee4968524f7e372599b762df21d (commit)
via 6a7f9e5a35954f24d74bd276193ddd257b230cac (commit)
via 8b40c86f5258ba437638b5e5d5d538ff3dcbe1c1 (commit)
via 3e5f8ace4ca6039eb22a587f463ec41014c66eec (commit)
via e048c0b0d60d75ca4458f7235179dfa283580fb2 (commit)
via 7c236c79dc621193afcf23c2ad0689a280b9e868 (commit)
via 42ff098b62214a8e3ff9984c6c554b051a93ad2e (commit)
via 04402f0a54a522e695cb3e492edc9cc9d280daf4 (commit)
via 0b442682e8f59c4e411ff0590b203bb1dcf04668 (commit)
via 5528729cfe130744aa8aa7d317af9d3a58146a2b (commit)
via cf3ad8f314f476fcac9768d2663d9afcd7661ef4 (commit)
via c57275b2a386c1fc291b4e1e800023eed552942d (commit)
via 409c1433fbb3845715a9f5b817f65d70ad161d90 (commit)
via 09c6148c1a2c9eda201e638b1ab6f5ebc7082745 (commit)
via c72cffc104bdffa902ebbdedc993ad5ddae8af5d (commit)
via cdcfe668b182ed328bae6dbd0d14528f72c50d4d (commit)
via c0f8681d2958afb11d3b4f5585de4804bc6524d4 (commit)
via 2f40e47c6660deb2d8f12c2ad403fffff6b44eb1 (commit)
via e3089252d712c2b0839f9798a98a99f690f959e2 (commit)
via b5d61ebe4059d8e89e1a40d7fd26545219172813 (commit)
via 5e4d3053fa3f8c92e02cbef811673b7c2a79040a (commit)
via 272ccdacb752b2352c26decdd648cbcf85b42b53 (commit)
via 73c3a74aea4d833e899baf0d69cd88e2c597908f (commit)
via dc7c3b9944d4b691b2099f10fba965714f82014f (commit)
via 5cd01f612dd0d318156ed7f7d369153f52a084d9 (commit)
via 5f3a088f08e99c16191c8e9461ae7052e9db8562 (commit)
via ea9c608068f019514e068fa629b18e53085ae5a3 (commit)
from b25251523bbcbc79cba19cd0c413821b83db4b1f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
3d74e20 Merge branch 'exp/newdoc' into exp/TL
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 125 ++++++-
GScribo/BUGS | 1 -
GScribo/GScribo.pro | 83 ----
GScribo/GScribo.pro.user | 405 -------------------
GScribo/GScribo.pro.user.1.3 | 283 -------------
GScribo/PagesWidget/pagesdelegate.cpp | 20 -
GScribo/PagesWidget/pagesdelegate.h | 18 -
GScribo/PagesWidget/pagesmodel.cpp | 55 ---
GScribo/PagesWidget/pagesmodel.h | 43 --
GScribo/PagesWidget/pageswidget.cpp | 49 ---
GScribo/PagesWidget/pageswidget.h | 55 ---
GScribo/Preferences/generaloptions.cpp | 44 --
GScribo/Preferences/generaloptions.h | 34 --
GScribo/Preferences/generaloptions.ui | 100 -----
GScribo/Preferences/ocroptions.cpp | 53 ---
GScribo/Preferences/ocroptions.h | 33 --
GScribo/Preferences/ocroptions.ui | 62 ---
GScribo/Preferences/optionwidget.h | 15 -
GScribo/Preferences/preferencesdialog.cpp | 98 -----
GScribo/Preferences/preferencesdialog.h | 42 --
GScribo/Preferences/preferencesdialog.ui | 121 ------
GScribo/Preferences/preprocessingoptions.cpp | 45 ---
GScribo/Preferences/preprocessingoptions.h | 32 --
GScribo/Preferences/preprocessingoptions.ui | 76 ----
GScribo/Preferences/segmentationoptions.cpp | 33 --
GScribo/Preferences/segmentationoptions.h | 31 --
GScribo/Preferences/segmentationoptions.ui | 52 ---
GScribo/Processing/preprocess.cpp | 11 -
GScribo/Processing/preprocess.h | 26 --
GScribo/Processing/process.cpp | 21 -
GScribo/Processing/process.h | 29 --
GScribo/Processing/progressdialog.cpp | 16 -
GScribo/Processing/progressdialog.h | 22 -
GScribo/Processing/runner.cpp | 183 ---------
GScribo/Processing/runner.h | 58 ---
GScribo/Rendering/abstractregionitem.h | 13 -
GScribo/Rendering/backgroundtexture.h | 12 -
GScribo/Rendering/graphicsview.cpp | 150 -------
GScribo/Rendering/graphicsview.h | 43 --
GScribo/Rendering/regionitem.cpp | 59 ---
GScribo/Rendering/regionitem.h | 80 ----
GScribo/Rendering/rootgraphicsitem.h | 30 --
GScribo/Rendering/scene.cpp | 273 -------------
GScribo/Rendering/scene.h | 118 ------
GScribo/Rendering/selection.cpp | 36 --
GScribo/Rendering/selection.h | 20 -
GScribo/TODO | 100 -----
GScribo/XmlWidget/attributesmodel.cpp | 69 ----
GScribo/XmlWidget/attributesmodel.h | 48 ---
GScribo/XmlWidget/selectionproxy.h | 47 ---
GScribo/XmlWidget/xmlattributes.cpp | 23 --
GScribo/XmlWidget/xmlattributes.h | 33 --
GScribo/XmlWidget/xmldelegate.h | 30 --
GScribo/XmlWidget/xmlitem.cpp | 43 --
GScribo/XmlWidget/xmlitem.h | 90 -----
GScribo/XmlWidget/xmlmodel.cpp | 87 ----
GScribo/XmlWidget/xmlmodel.h | 44 --
GScribo/XmlWidget/xmlview.cpp | 88 ----
GScribo/XmlWidget/xmlview.h | 79 ----
GScribo/XmlWidget/xmlwidget.cpp | 34 --
GScribo/XmlWidget/xmlwidget.h | 54 ---
GScribo/aboutdialog.h | 25 --
GScribo/aboutdialog.ui | 136 -------
GScribo/configs.h | 134 -------
GScribo/dir.h | 7 -
GScribo/dockwidget.h | 22 -
GScribo/main.cpp | 23 --
GScribo/mainwindow.cpp | 415 --------------------
GScribo/mainwindow.h | 120 ------
GScribo/mainwindow.ui | 35 --
GScribo/region.h | 56 ---
GScribo/regionwidget.cpp | 70 ----
GScribo/regionwidget.h | 40 --
GScribo/variantpointer.h | 19 -
GScribo/xml.cpp | 206 ----------
GScribo/xml.h | 93 -----
Makefile.am | 28 +-
configure.ac | 14 +-
distrib/macports/Portfile.in | 4 +-
doc/Makefile.am | 4 +-
milena/ChangeLog | 252 ++++++++++++
milena/apps/mesh-segm-skel/Makefile.am | 2 +-
milena/doc/Doxyfile.in | 31 +-
milena/doc/Makefile.am | 9 +-
milena/doc/examples/multi_files_f1.cc.raw | 6 +
milena/doc/examples/multi_files_f2.cc.raw | 6 +
milena/doc/examples/multi_files_main.cc.raw | 16 +
milena/doc/examples/multiple_def.cc.raw | 9 +
milena/doc/examples/split/tuto3_rw_image-3.cc.raw | 6 +-
milena/doc/examples/split/tuto3_rw_image-4.cc.raw | 2 +-
milena/doc/examples/split/tuto3_rw_image-5.cc.raw | 5 +-
milena/doc/examples/split/tuto3_rw_image-6.cc.raw | 3 +-
milena/doc/examples/split/tuto3_rw_image-7.cc.raw | 2 +-
...3_rw_image-7.cc.raw => tuto3_rw_image-8.cc.raw} | 0
milena/doc/examples/tuto3_rw_image.cc | 6 +
milena/doc/examples/typenametemplate.cc.raw | 1 +
milena/doc/examples/undef_global_vars.cc.raw | 1 +
milena/doc/examples/wrongvaluetype.cc.raw | 2 +
milena/doc/mln/convert.dox | 169 ++++++++-
milena/doc/mln/geom/geom.dox | 7 +
milena/doc/mln/labeling/labeling.dox | 6 +
milena/doc/mln/main.dox | 7 +
milena/doc/mln/transformation.dox | 41 ++
milena/doc/ref-guide.tex | 69 +++-
milena/doc/tutorial.tex | 31 +-
milena/mln/algebra/h_mat.hh | 9 +-
milena/mln/algebra/quat.hh | 13 +-
milena/mln/algebra/vec.hh | 32 ++-
milena/mln/binarization/threshold.hh | 2 +-
milena/mln/convert/from_to.hh | 40 ++-
milena/mln/convert/impl/from_double_to_value.hh | 15 +-
milena/mln/convert/impl/from_float_to_value.hh | 20 +-
milena/mln/convert/impl/from_unsigned_to_value.hh | 14 +-
milena/mln/convert/to.hh | 19 +-
milena/mln/convert/to_image.hh | 28 +-
milena/mln/convert/to_p_array.hh | 21 +-
milena/mln/convert/to_p_set.hh | 35 ++-
milena/mln/convert/to_qimage.hh | 18 +-
milena/mln/convert/to_qimage_nocopy.hh | 24 ++-
milena/mln/convert/to_upper_window.hh | 14 +-
milena/mln/convert/to_window.hh | 23 +-
milena/mln/core/alias/neighb2d.hh | 10 +-
milena/mln/core/alias/neighb3d.hh | 5 +-
milena/mln/core/alias/window1d.hh | 9 +-
milena/mln/core/alias/window2d.hh | 12 +-
milena/mln/core/alias/window3d.hh | 5 +-
milena/mln/core/concept/function.hh | 160 ++++++--
milena/mln/core/concept/gpoint.hh | 10 +-
milena/mln/core/image/#image2d# | 1 +
milena/mln/core/image/image1d.hh | 280 +++++++-------
milena/mln/core/image/image2d.hh | 292 +++++++-------
milena/mln/core/image/image3d.hh | 292 +++++++-------
milena/mln/core/mixed_neighb.hh | 12 +-
milena/mln/core/neighb.hh | 12 +-
milena/mln/core/w_window.hh | 12 +-
milena/mln/data/convert.hh | 38 ++-
milena/mln/fun/i2v/array.hh | 17 +-
milena/mln/fun/v2v/convert.hh | 16 +-
milena/mln/fun/v2v/hsl_to_rgb.hh | 13 +-
milena/mln/fun/v2v/qt_rgb_to_int_u.hh | 8 +-
milena/mln/fun/v2v/rgb8_to_rgbn.hh | 31 +-
milena/mln/fun/v2v/rgb_to_hsl.hh | 27 ++-
milena/mln/fun/v2v/rgb_to_int_u.hh | 20 +-
milena/mln/fun/v2v/rgb_to_luma.hh | 18 +-
milena/mln/geom/crop.hh | 6 +-
milena/mln/geom/crop_without_localization.hh | 6 +-
milena/mln/geom/horizontal_symmetry.hh | 6 +-
milena/mln/geom/rotate.hh | 10 +-
milena/mln/geom/translate.hh | 12 +-
milena/mln/geom/vertical_symmetry.hh | 6 +-
milena/mln/histo/array.hh | 11 +-
milena/mln/labeling/background.hh | 4 +-
milena/mln/labeling/colorize.hh | 42 ++-
milena/mln/labeling/compute.hh | 100 +++---
milena/mln/labeling/compute_image.hh | 74 ++--
milena/mln/labeling/flat_zones.hh | 18 +-
milena/mln/labeling/foreground.hh | 8 +-
milena/mln/labeling/mean_values.hh | 11 +-
milena/mln/labeling/n_max.hh | 77 ++--
milena/mln/labeling/pack.hh | 34 ++-
milena/mln/labeling/regional_maxima.hh | 19 +-
milena/mln/labeling/regional_minima.hh | 19 +-
milena/mln/labeling/relabel.hh | 71 ++--
milena/mln/labeling/superpose.hh | 5 +-
milena/mln/labeling/value.hh | 24 +-
milena/mln/labeling/value_and_compute.hh | 22 +-
milena/mln/labeling/wrap.hh | 35 +-
milena/mln/registration/icp.hh | 3 +
milena/mln/subsampling/antialiased.hh | 12 +-
milena/mln/topo/complex.hh | 44 +-
milena/mln/trait/ch_value.hh | 66 +++-
milena/mln/trait/concrete.hh | 65 +++-
milena/mln/upscaling/art/scale2x.hh | 6 +-
milena/mln/upscaling/art/scale3x.hh | 6 +-
milena/mln/util/array.hh | 23 +-
milena/mln/util/object_id.hh | 5 +-
milena/mln/value/hsl.hh | 40 ++-
milena/mln/value/int_u.hh | 30 ++-
milena/mln/value/label.hh | 25 +-
milena/mln/value/qt/rgb32.hh | 10 +-
milena/mln/value/rgb.hh | 20 +-
milena/mln/win/rectangle2d.hh | 13 +-
milena/tests/labeling/n_max.cc | 5 +-
milena/tests/unit_test/unit-tests.mk | 2 +
scribo/ChangeLog | 67 ++++
scribo/doc/Doxyfile.in | 16 +-
scribo/doc/Makefile.am | 2 +-
scribo/doc/scribo/core/component_set.dox | 90 -----
scribo/scribo/core/component_set.hh | 102 +++++-
scribo/scribo/core/line_set.hh | 4 +-
scribo/scribo/core/object_links.hh | 53 ++-
scribo/scribo/debug/logger.hh | 2 +-
scribo/scribo/util/component_precise_outline.hh | 9 +-
scribo/src/primitive/extract/lines_pattern.cc | 2 +-
swilena/ChangeLog | 280 +++++++++++++
swilena/Makefile.am | 11 +-
swilena/box.ixx | 2 +-
swilena/box2d.i | 7 +-
swilena/box_piter.ixx | 3 +-
swilena/complex.ixx | 330 ++++++++++++++++
swilena/complex2.i | 111 ++++++
swilena/concat.ixx | 4 +-
swilena/image2d.ixx | 30 ++-
swilena/image2d_int.i | 5 +-
swilena/image2d_int_u8.i | 4 +-
swilena/image2d_point2d.i | 53 +++
swilena/image2d_rgb8.i | 63 +++
swilena/int_u.ixx | 24 +-
swilena/morpho.ixx | 23 +-
swilena/ppm.ixx | 57 +++
swilena/python-utils.ixx | 3 +-
swilena/python/Makefile.am | 192 +++++++++-
swilena/python/complex2-misc.py | 99 +++++
swilena/python/data.py | 26 --
swilena/python/data.py.in | 26 ++
swilena/python/installcheck.mk | 116 ++++++
swilena/python/ltihooks.py | 60 ---
swilena/python/max-tree.py | 57 +++
swilena/python/morpho-segm.py | 2 +-
swilena/python/sps-gdb-local.in | 6 +
swilena/python/sps-local.in | 2 +-
swilena/python/swilena.py | 10 +-
swilena/rgb.ixx | 159 ++++++++
swilena/rgb8.i | 40 ++
swilena/run.in | 50 ++--
225 files changed, 4376 insertions(+), 6665 deletions(-)
delete mode 100644 GScribo/BUGS
delete mode 100644 GScribo/GScribo.pro
delete mode 100644 GScribo/GScribo.pro.user
delete mode 100644 GScribo/GScribo.pro.user.1.3
delete mode 100644 GScribo/PagesWidget/pagesdelegate.cpp
delete mode 100644 GScribo/PagesWidget/pagesdelegate.h
delete mode 100644 GScribo/PagesWidget/pagesmodel.cpp
delete mode 100644 GScribo/PagesWidget/pagesmodel.h
delete mode 100644 GScribo/PagesWidget/pageswidget.cpp
delete mode 100644 GScribo/PagesWidget/pageswidget.h
delete mode 100644 GScribo/Preferences/generaloptions.cpp
delete mode 100644 GScribo/Preferences/generaloptions.h
delete mode 100644 GScribo/Preferences/generaloptions.ui
delete mode 100644 GScribo/Preferences/ocroptions.cpp
delete mode 100644 GScribo/Preferences/ocroptions.h
delete mode 100644 GScribo/Preferences/ocroptions.ui
delete mode 100644 GScribo/Preferences/optionwidget.h
delete mode 100644 GScribo/Preferences/preferencesdialog.cpp
delete mode 100644 GScribo/Preferences/preferencesdialog.h
delete mode 100644 GScribo/Preferences/preferencesdialog.ui
delete mode 100644 GScribo/Preferences/preprocessingoptions.cpp
delete mode 100644 GScribo/Preferences/preprocessingoptions.h
delete mode 100644 GScribo/Preferences/preprocessingoptions.ui
delete mode 100644 GScribo/Preferences/segmentationoptions.cpp
delete mode 100644 GScribo/Preferences/segmentationoptions.h
delete mode 100644 GScribo/Preferences/segmentationoptions.ui
delete mode 100644 GScribo/Processing/preprocess.cpp
delete mode 100644 GScribo/Processing/preprocess.h
delete mode 100644 GScribo/Processing/process.cpp
delete mode 100644 GScribo/Processing/process.h
delete mode 100644 GScribo/Processing/progressdialog.cpp
delete mode 100644 GScribo/Processing/progressdialog.h
delete mode 100644 GScribo/Processing/runner.cpp
delete mode 100644 GScribo/Processing/runner.h
delete mode 100644 GScribo/Rendering/abstractregionitem.h
delete mode 100644 GScribo/Rendering/backgroundtexture.h
delete mode 100644 GScribo/Rendering/graphicsview.cpp
delete mode 100644 GScribo/Rendering/graphicsview.h
delete mode 100644 GScribo/Rendering/regionitem.cpp
delete mode 100644 GScribo/Rendering/regionitem.h
delete mode 100644 GScribo/Rendering/rootgraphicsitem.h
delete mode 100644 GScribo/Rendering/scene.cpp
delete mode 100644 GScribo/Rendering/scene.h
delete mode 100644 GScribo/Rendering/selection.cpp
delete mode 100644 GScribo/Rendering/selection.h
delete mode 100644 GScribo/TODO
delete mode 100644 GScribo/XmlWidget/attributesmodel.cpp
delete mode 100644 GScribo/XmlWidget/attributesmodel.h
delete mode 100644 GScribo/XmlWidget/selectionproxy.h
delete mode 100644 GScribo/XmlWidget/xmlattributes.cpp
delete mode 100644 GScribo/XmlWidget/xmlattributes.h
delete mode 100644 GScribo/XmlWidget/xmldelegate.h
delete mode 100644 GScribo/XmlWidget/xmlitem.cpp
delete mode 100644 GScribo/XmlWidget/xmlitem.h
delete mode 100644 GScribo/XmlWidget/xmlmodel.cpp
delete mode 100644 GScribo/XmlWidget/xmlmodel.h
delete mode 100644 GScribo/XmlWidget/xmlview.cpp
delete mode 100644 GScribo/XmlWidget/xmlview.h
delete mode 100644 GScribo/XmlWidget/xmlwidget.cpp
delete mode 100644 GScribo/XmlWidget/xmlwidget.h
delete mode 100644 GScribo/aboutdialog.h
delete mode 100644 GScribo/aboutdialog.ui
delete mode 100644 GScribo/configs.h
delete mode 100644 GScribo/dir.h
delete mode 100644 GScribo/dockwidget.h
delete mode 100644 GScribo/main.cpp
delete mode 100644 GScribo/mainwindow.cpp
delete mode 100644 GScribo/mainwindow.h
delete mode 100644 GScribo/mainwindow.ui
delete mode 100644 GScribo/region.h
delete mode 100644 GScribo/regionwidget.cpp
delete mode 100644 GScribo/regionwidget.h
delete mode 100644 GScribo/variantpointer.h
delete mode 100644 GScribo/xml.cpp
delete mode 100644 GScribo/xml.h
create mode 100644 milena/doc/examples/multi_files_f1.cc.raw
create mode 100644 milena/doc/examples/multi_files_f2.cc.raw
create mode 100644 milena/doc/examples/multi_files_main.cc.raw
create mode 100644 milena/doc/examples/multiple_def.cc.raw
copy milena/doc/examples/split/{tuto3_rw_image-7.cc.raw => tuto3_rw_image-8.cc.raw} (100%)
create mode 100644 milena/doc/examples/typenametemplate.cc.raw
create mode 100644 milena/doc/examples/undef_global_vars.cc.raw
create mode 100644 milena/doc/examples/wrongvaluetype.cc.raw
create mode 100644 milena/doc/mln/geom/geom.dox
create mode 100644 milena/doc/mln/labeling/labeling.dox
create mode 100644 milena/doc/mln/transformation.dox
create mode 100644 milena/mln/core/image/#image2d#
delete mode 100644 scribo/doc/scribo/core/component_set.dox
create mode 100644 swilena/complex.ixx
create mode 100644 swilena/complex2.i
create mode 100644 swilena/image2d_point2d.i
create mode 100644 swilena/image2d_rgb8.i
create mode 100644 swilena/ppm.ixx
create mode 100644 swilena/python/complex2-misc.py
delete mode 100644 swilena/python/data.py
create mode 100644 swilena/python/data.py.in
create mode 100644 swilena/python/installcheck.mk
delete mode 100644 swilena/python/ltihooks.py
create mode 100644 swilena/python/max-tree.py
create mode 100644 swilena/python/sps-gdb-local.in
create mode 100644 swilena/rgb.ixx
create mode 100644 swilena/rgb8.i
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

23 Apr '13
This is a merge commit message of the following branches:
Merge: b252515 ea3a438
Conflicts:
milena/ChangeLog
ChangeLog | 125 ++++++-
GScribo/BUGS | 1 -
GScribo/GScribo.pro | 83 ----
GScribo/GScribo.pro.user | 405 --------------------
GScribo/GScribo.pro.user.1.3 | 283 --------------
GScribo/PagesWidget/pagesdelegate.cpp | 20 -
GScribo/PagesWidget/pagesdelegate.h | 18 -
GScribo/PagesWidget/pagesmodel.cpp | 55 ---
GScribo/PagesWidget/pagesmodel.h | 43 ---
GScribo/PagesWidget/pageswidget.cpp | 49 ---
GScribo/PagesWidget/pageswidget.h | 55 ---
GScribo/Preferences/generaloptions.cpp | 44 ---
GScribo/Preferences/generaloptions.h | 34 --
GScribo/Preferences/generaloptions.ui | 100 -----
GScribo/Preferences/ocroptions.cpp | 53 ---
GScribo/Preferences/ocroptions.h | 33 --
GScribo/Preferences/ocroptions.ui | 62 ---
GScribo/Preferences/optionwidget.h | 15 -
GScribo/Preferences/preferencesdialog.cpp | 98 -----
GScribo/Preferences/preferencesdialog.h | 42 --
GScribo/Preferences/preferencesdialog.ui | 121 ------
GScribo/Preferences/preprocessingoptions.cpp | 45 ---
GScribo/Preferences/preprocessingoptions.h | 32 --
GScribo/Preferences/preprocessingoptions.ui | 76 ----
GScribo/Preferences/segmentationoptions.cpp | 33 --
GScribo/Preferences/segmentationoptions.h | 31 --
GScribo/Preferences/segmentationoptions.ui | 52 ---
GScribo/Processing/preprocess.cpp | 11 -
GScribo/Processing/preprocess.h | 26 --
GScribo/Processing/process.cpp | 21 -
GScribo/Processing/process.h | 29 --
GScribo/Processing/progressdialog.cpp | 16 -
GScribo/Processing/progressdialog.h | 22 --
GScribo/Processing/runner.cpp | 183 ---------
GScribo/Processing/runner.h | 58 ---
GScribo/Rendering/abstractregionitem.h | 13 -
GScribo/Rendering/backgroundtexture.h | 12 -
GScribo/Rendering/graphicsview.cpp | 150 --------
GScribo/Rendering/graphicsview.h | 43 ---
GScribo/Rendering/regionitem.cpp | 59 ---
GScribo/Rendering/regionitem.h | 80 ----
GScribo/Rendering/rootgraphicsitem.h | 30 --
GScribo/Rendering/scene.cpp | 273 --------------
GScribo/Rendering/scene.h | 118 ------
GScribo/Rendering/selection.cpp | 36 --
GScribo/Rendering/selection.h | 20 -
GScribo/TODO | 100 -----
GScribo/XmlWidget/attributesmodel.cpp | 69 ----
GScribo/XmlWidget/attributesmodel.h | 48 ---
GScribo/XmlWidget/selectionproxy.h | 47 ---
GScribo/XmlWidget/xmlattributes.cpp | 23 --
GScribo/XmlWidget/xmlattributes.h | 33 --
GScribo/XmlWidget/xmldelegate.h | 30 --
GScribo/XmlWidget/xmlitem.cpp | 43 ---
GScribo/XmlWidget/xmlitem.h | 90 -----
GScribo/XmlWidget/xmlmodel.cpp | 87 -----
GScribo/XmlWidget/xmlmodel.h | 44 ---
GScribo/XmlWidget/xmlview.cpp | 88 -----
GScribo/XmlWidget/xmlview.h | 79 ----
GScribo/XmlWidget/xmlwidget.cpp | 34 --
GScribo/XmlWidget/xmlwidget.h | 54 ---
GScribo/aboutdialog.h | 25 --
GScribo/aboutdialog.ui | 136 -------
GScribo/configs.h | 134 -------
GScribo/dir.h | 7 -
GScribo/dockwidget.h | 22 --
GScribo/main.cpp | 23 --
GScribo/mainwindow.cpp | 415 ---------------------
GScribo/mainwindow.h | 120 ------
GScribo/mainwindow.ui | 35 --
GScribo/region.h | 56 ---
GScribo/regionwidget.cpp | 70 ----
GScribo/regionwidget.h | 40 --
GScribo/variantpointer.h | 19 -
GScribo/xml.cpp | 206 ----------
GScribo/xml.h | 93 -----
Makefile.am | 28 +-
configure.ac | 14 +-
distrib/macports/Portfile.in | 4 +-
doc/Makefile.am | 4 +-
milena/ChangeLog | 252 +++++++++++++
milena/apps/mesh-segm-skel/Makefile.am | 2 +-
milena/doc/Doxyfile.in | 31 +-
milena/doc/Makefile.am | 9 +-
milena/doc/examples/multi_files_f1.cc.raw | 6 +
milena/doc/examples/multi_files_f2.cc.raw | 6 +
milena/doc/examples/multi_files_main.cc.raw | 16 +
milena/doc/examples/multiple_def.cc.raw | 9 +
milena/doc/examples/split/tuto3_rw_image-3.cc.raw | 6 +-
milena/doc/examples/split/tuto3_rw_image-4.cc.raw | 2 +-
milena/doc/examples/split/tuto3_rw_image-5.cc.raw | 5 +-
milena/doc/examples/split/tuto3_rw_image-6.cc.raw | 3 +-
milena/doc/examples/split/tuto3_rw_image-7.cc.raw | 2 +-
milena/doc/examples/split/tuto3_rw_image-8.cc.raw | 1 +
milena/doc/examples/tuto3_rw_image.cc | 6 +
milena/doc/examples/typenametemplate.cc.raw | 1 +
milena/doc/examples/undef_global_vars.cc.raw | 1 +
milena/doc/examples/wrongvaluetype.cc.raw | 2 +
milena/doc/mln/convert.dox | 169 ++++++++-
milena/doc/mln/geom/geom.dox | 7 +
milena/doc/mln/labeling/labeling.dox | 6 +
milena/doc/mln/main.dox | 7 +
milena/doc/mln/transformation.dox | 41 ++
milena/doc/ref-guide.tex | 69 +++-
milena/doc/tutorial.tex | 31 +-
milena/mln/algebra/h_mat.hh | 9 +-
milena/mln/algebra/quat.hh | 13 +-
milena/mln/algebra/vec.hh | 32 ++-
milena/mln/binarization/threshold.hh | 2 +-
milena/mln/convert/from_to.hh | 40 ++-
milena/mln/convert/impl/from_double_to_value.hh | 15 +-
milena/mln/convert/impl/from_float_to_value.hh | 20 +-
milena/mln/convert/impl/from_unsigned_to_value.hh | 14 +-
milena/mln/convert/to.hh | 19 +-
milena/mln/convert/to_image.hh | 28 ++-
milena/mln/convert/to_p_array.hh | 21 +-
milena/mln/convert/to_p_set.hh | 35 ++-
milena/mln/convert/to_qimage.hh | 18 +-
milena/mln/convert/to_qimage_nocopy.hh | 24 ++-
milena/mln/convert/to_upper_window.hh | 14 +-
milena/mln/convert/to_window.hh | 23 +-
milena/mln/core/alias/neighb2d.hh | 10 +-
milena/mln/core/alias/neighb3d.hh | 5 +-
milena/mln/core/alias/window1d.hh | 9 +-
milena/mln/core/alias/window2d.hh | 12 +-
milena/mln/core/alias/window3d.hh | 5 +-
milena/mln/core/concept/function.hh | 160 ++++++--
milena/mln/core/concept/gpoint.hh | 10 +-
milena/mln/core/image/#image2d# | 1 +
milena/mln/core/image/image1d.hh | 280 +++++++-------
milena/mln/core/image/image2d.hh | 292 ++++++++--------
milena/mln/core/image/image3d.hh | 292 ++++++++--------
milena/mln/core/mixed_neighb.hh | 12 +-
milena/mln/core/neighb.hh | 12 +-
milena/mln/core/w_window.hh | 12 +-
milena/mln/data/convert.hh | 38 ++-
milena/mln/fun/i2v/array.hh | 17 +-
milena/mln/fun/v2v/convert.hh | 16 +-
milena/mln/fun/v2v/hsl_to_rgb.hh | 13 +-
milena/mln/fun/v2v/qt_rgb_to_int_u.hh | 8 +-
milena/mln/fun/v2v/rgb8_to_rgbn.hh | 31 +-
milena/mln/fun/v2v/rgb_to_hsl.hh | 27 ++-
milena/mln/fun/v2v/rgb_to_int_u.hh | 20 +-
milena/mln/fun/v2v/rgb_to_luma.hh | 18 +-
milena/mln/geom/crop.hh | 6 +-
milena/mln/geom/crop_without_localization.hh | 6 +-
milena/mln/geom/horizontal_symmetry.hh | 6 +-
milena/mln/geom/rotate.hh | 10 +-
milena/mln/geom/translate.hh | 12 +-
milena/mln/geom/vertical_symmetry.hh | 6 +-
milena/mln/histo/array.hh | 11 +-
milena/mln/labeling/background.hh | 4 +-
milena/mln/labeling/colorize.hh | 42 ++-
milena/mln/labeling/compute.hh | 100 +++---
milena/mln/labeling/compute_image.hh | 74 ++--
milena/mln/labeling/flat_zones.hh | 18 +-
milena/mln/labeling/foreground.hh | 8 +-
milena/mln/labeling/mean_values.hh | 11 +-
milena/mln/labeling/n_max.hh | 77 ++--
milena/mln/labeling/pack.hh | 34 ++-
milena/mln/labeling/regional_maxima.hh | 19 +-
milena/mln/labeling/regional_minima.hh | 19 +-
milena/mln/labeling/relabel.hh | 71 ++--
milena/mln/labeling/superpose.hh | 5 +-
milena/mln/labeling/value.hh | 24 +-
milena/mln/labeling/value_and_compute.hh | 22 +-
milena/mln/labeling/wrap.hh | 35 +-
milena/mln/registration/icp.hh | 3 +
milena/mln/subsampling/antialiased.hh | 12 +-
milena/mln/topo/complex.hh | 44 ++--
milena/mln/trait/ch_value.hh | 66 ++++-
milena/mln/trait/concrete.hh | 65 +++-
milena/mln/upscaling/art/scale2x.hh | 6 +-
milena/mln/upscaling/art/scale3x.hh | 6 +-
milena/mln/util/array.hh | 23 +-
milena/mln/util/object_id.hh | 5 +-
milena/mln/value/hsl.hh | 40 ++-
milena/mln/value/int_u.hh | 30 ++-
milena/mln/value/label.hh | 25 +-
milena/mln/value/qt/rgb32.hh | 10 +-
milena/mln/value/rgb.hh | 20 +-
milena/mln/win/rectangle2d.hh | 13 +-
milena/tests/labeling/n_max.cc | 5 +-
milena/tests/unit_test/unit-tests.mk | 2 +
scribo/ChangeLog | 67 ++++
scribo/doc/Doxyfile.in | 16 +-
scribo/doc/Makefile.am | 2 +-
scribo/doc/scribo/core/component_set.dox | 90 -----
scribo/scribo/core/component_set.hh | 102 +++++-
scribo/scribo/core/line_set.hh | 4 +-
scribo/scribo/core/object_links.hh | 53 +++-
scribo/scribo/debug/logger.hh | 2 +-
scribo/scribo/util/component_precise_outline.hh | 9 +-
scribo/src/primitive/extract/lines_pattern.cc | 2 +-
swilena/ChangeLog | 280 ++++++++++++++
swilena/Makefile.am | 11 +-
swilena/box.ixx | 2 +-
swilena/box2d.i | 7 +-
swilena/box_piter.ixx | 3 +-
swilena/complex.ixx | 330 ++++++++++++++++
swilena/complex2.i | 111 ++++++
swilena/concat.ixx | 4 +-
swilena/image2d.ixx | 30 ++-
swilena/image2d_int.i | 5 +-
swilena/image2d_int_u8.i | 4 +-
swilena/image2d_point2d.i | 53 +++
swilena/image2d_rgb8.i | 63 +++
swilena/int_u.ixx | 24 +-
swilena/morpho.ixx | 23 ++-
swilena/ppm.ixx | 57 +++
swilena/python-utils.ixx | 3 +-
swilena/python/Makefile.am | 192 +++++++++-
swilena/python/complex2-misc.py | 99 +++++
swilena/python/data.py | 26 --
swilena/python/data.py.in | 26 ++
swilena/python/installcheck.mk | 116 ++++++
swilena/python/ltihooks.py | 60 ---
swilena/python/max-tree.py | 57 +++
swilena/python/morpho-segm.py | 2 +-
swilena/python/sps-gdb-local.in | 6 +
swilena/python/sps-local.in | 2 +-
swilena/python/swilena.py | 10 +-
swilena/rgb.ixx | 159 ++++++++
swilena/rgb8.i | 40 ++
swilena/run.in | 50 ++--
225 files changed, 4377 insertions(+), 6665 deletions(-)
diff --cc milena/ChangeLog
index 2f20d83,4b7d2c5..1d8ef7c
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@@ -1,51 -1,232 +1,280 @@@
2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+ * mln/core/concept/function.hh: Document function interface for
+ each concept.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/core/image/image2d_ffmpeg.hh: Fix compilation issues.
+
+2013-04-18 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/core/image/image2d_ffmpeg.hh: Enable fastest access.
+
+2013-04-18 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/core/image/image2d_ffmpeg.hh: New image type for ffmpeg frames.
+
+2013-04-18 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add support for graylevel images in labeling::blobs.
+
+ * mln/canvas/labeling/blobs.hh: Add a fastest version and make it
+ support graylevel images.
+
+ * mln/labeling/blobs.hh,
+ * mln/labeling/blobs_and_compute.hh: Add support for graylevel images.
+
+ * tests/labeling/blobs.cc,
+ * tests/labeling/blobs_and_compute.cc: Add a test for graylevel images.
+
+ * tests/labeling/Makefile.am: Remove all_blobs target.
+
+ * mln/labeling/all_blobs.hh,
+ * tests/labeling/all_blobs.cc: Remove.
+
+2013-04-18 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/core/internal/pixel_impl.hh: Add change_offset().
+
+2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add a labeling routine working on grayscale images.
+
+ * mln/canvas/labeling/blobs.hh,
+ * mln/labeling/blobs.hh,
+ * mln/labeling/blobs_and_compute.hh: Introduce a new functor
+ method handles().
+
+ * tests/labeling/Makefile.am: Add target.
+
+ * mln/labeling/all_blobs.hh,
+ * tests/labeling/all_blobs.cc: New.
+
++2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
++
+ Kill Doxygen warnings.
+
+ * mln/data/convert.hh: Add a missing \overload.
+
+ * mln/value/qt/rgb32.hh: Do not force autolink.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Specify conversion formulas for rgb to integer conversion
+ functions.
+
+ * mln/fun/v2v/rgb_to_int_u.hh,
+ * mln/fun/v2v/rgb_to_luma.hh: Here.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Create sub-modules in image geometry module.
+
+ * doc/mln/geom/geom.dox: Add cropping sub-module.
+
+ * doc/mln/transformation.dox: Add new sub-modules.
+
+ * mln/binarization/threshold.hh: Move to conversion module.
+
+ * mln/geom/crop.hh,
+ * mln/geom/crop_without_localization.hh,
+ * mln/geom/horizontal_symmetry.hh,
+ * mln/geom/rotate.hh,
+ * mln/geom/translate.hh,
+ * mln/geom/vertical_symmetry.hh,
+ * mln/registration/icp.hh,
+ * mln/subsampling/antialiased.hh,
+ * mln/upscaling/art/scale2x.hh,
+ * mln/upscaling/art/scale3x.hh: Move to newly created sub-modules.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * doc/mln/convert.dox: Fix typos.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add documentation about image conversions.
+
+ * doc/mln/convert.dox: Add examples and explanations.
+
+ * mln/convert/from_to.hh,
+ * mln/convert/to.hh,
+ * mln/convert/to_image.hh,
+ * mln/convert/to_p_array.hh,
+ * mln/convert/to_p_set.hh,
+ * mln/convert/to_qimage.hh,
+ * mln/convert/to_qimage_nocopy.hh,
+ * mln/convert/to_upper_window.hh,
+ * mln/convert/to_window.hh,
+ * mln/data/convert.hh,
+ * mln/fun/v2v/convert.hh,
+ * mln/fun/v2v/hsl_to_rgb.hh,
+ * mln/fun/v2v/qt_rgb_to_int_u.hh,
+ * mln/fun/v2v/rgb8_to_rgbn.hh,
+ * mln/fun/v2v/rgb_to_hsl.hh,
+ * mln/fun/v2v/rgb_to_int_u.hh,
+ * mln/fun/v2v/rgb_to_luma.hh: Add to conversion module.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/data/convert.hh: Introduce a new overload taking a
+ conversion function as parameter.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add references to from_to_ overloads in documentation.
+
+ * mln/algebra/h_mat.hh,
+ * mln/algebra/quat.hh,
+ * mln/algebra/vec.hh,
+ * mln/convert/from_to.hh,
+ * mln/convert/impl/from_double_to_value.hh,
+ * mln/convert/impl/from_float_to_value.hh,
+ * mln/convert/impl/from_unsigned_to_value.hh,
+ * mln/core/alias/neighb2d.hh,
+ * mln/core/alias/neighb3d.hh,
+ * mln/core/alias/window1d.hh,
+ * mln/core/alias/window2d.hh,
+ * mln/core/alias/window3d.hh,
+ * mln/core/concept/gpoint.hh,
+ * mln/core/image/#image2d#,
+ * mln/core/image/image1d.hh,
+ * mln/core/image/image2d.hh,
+ * mln/core/image/image3d.hh,
+ * mln/core/mixed_neighb.hh,
+ * mln/core/neighb.hh,
+ * mln/core/w_window.hh,
+ * mln/fun/i2v/array.hh,
+ * mln/histo/array.hh,
+ * mln/util/array.hh,
+ * mln/util/object_id.hh,
+ * mln/value/hsl.hh,
+ * mln/value/int_u.hh,
+ * mln/value/label.hh,
+ * mln/value/qt/rgb32.hh,
+ * mln/value/rgb.hh: Add to from_to_ group.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Explain how to iterate over an image in tutorial.
+
+ * doc/examples/split/tuto3_rw_image-3.cc.raw,
+ * doc/examples/split/tuto3_rw_image-4.cc.raw,
+ * doc/examples/split/tuto3_rw_image-5.cc.raw,
+ * doc/examples/split/tuto3_rw_image-6.cc.raw,
+ * doc/examples/split/tuto3_rw_image-7.cc.raw,
+ * doc/examples/split/tuto3_rw_image-8.cc.raw: Regen.
+
+ * doc/examples/tuto3_rw_image.cc: Add an example with iterators.
+
+ * doc/tutorial.tex: Add more explanations on iterators.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Introduce image transformation module in documentation.
+
+ * doc/mln/main.dox: Create new group.
+
+ * mln/geom/crop.hh,
+ * mln/geom/crop_without_localization.hh,
+ * mln/geom/horizontal_symmetry.hh,
+ * mln/geom/rotate.hh,
+ * mln/geom/translate.hh,
+ * mln/geom/vertical_symmetry.hh,
+ * mln/registration/icp.hh,
+ * mln/subsampling/antialiased.hh,
+ * mln/upscaling/art/scale2x.hh,
+ * mln/upscaling/art/scale3x.hh: move to this new group.
+
+ 2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Make template parameter name more consistant with naming
+ conventions.
+
+ * mln/core/image/image1d.hh,
+ * mln/core/image/image2d.hh,
+ * mln/core/image/image3d.hh: Here.
+
+ 2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * doc/mln/convert.dox: Fix from_to_ module name.
+
+ 2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Move internal code to namespace internal.
+
+ * mln/labeling/n_max.hh: Move internal function to namespace
+ internal.
+
+ * tests/labeling/n_max.cc: Update function namespaces.
+
+ 2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/win/rectangle2d.hh: Hide internal API.
+
+ 2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add labeling module in documentation.
+
+ * doc/mln/labeling/labeling.dox: New. Introduce labeling module.
+
+ * mln/labeling/background.hh,
+ * mln/labeling/colorize.hh,
+ * mln/labeling/compute.hh,
+ * mln/labeling/compute_image.hh,
+ * mln/labeling/flat_zones.hh,
+ * mln/labeling/foreground.hh,
+ * mln/labeling/mean_values.hh,
+ * mln/labeling/pack.hh,
+ * mln/labeling/regional_maxima.hh,
+ * mln/labeling/regional_minima.hh,
+ * mln/labeling/relabel.hh,
+ * mln/labeling/superpose.hh,
+ * mln/labeling/value.hh,
+ * mln/labeling/value_and_compute.hh,
+ * mln/labeling/wrap.hh: Set documentation as part of the labeling
+ group.
+
+ 2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add documentation for mln_concrete and mln_ch_value.
+
+ * mln/trait/ch_value.hh,
+ * mln/trait/concrete.hh: Here.
+
+ 2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add explanations on compilation with multiple files.
+
+ * doc/examples/multi_files_f1.cc.raw,
+ * doc/examples/multi_files_f2.cc.raw,
+ * doc/examples/multi_files_main.cc.raw,
+ * doc/examples/multiple_def.cc.raw,
+ * doc/examples/typenametemplate.cc.raw,
+ * doc/examples/undef_global_vars.cc.raw,
+ * doc/examples/wrongvaluetype.cc.raw: New.
+
+ * doc/ref-guide.tex: Add a new section.
+
+ 2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * doc/Doxyfile.in: Expand more macros.
+
+ 2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * doc/Doxyfile.in: Exclude internal symbols.
+
+ 2013-04-16 Roland Levillain <roland(a)lrde.epita.fr>
+
+ * tests/unit_test/unit-tests.mk: Regen.
+
+ 2013-04-16 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Fix build issues in Milena's documentation.
+
+ * doc/Makefile.am ($(srcdir)/img/small.png): New rule.
+
2013-04-12 Guillaume Lazzara <z(a)lrde.epita.fr>
* doc/Makefile.am: Remove duplicate '/' in path.
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/newdoc has been updated
discards e6d70f78a13acfa65347e229ef04bdceb2a87f39 (commit)
discards 0469218d0e308d737baf56a1411993ef220b9c66 (commit)
discards abe7da9fbe85dbde5b55475a3efbf841bf2e0dbe (commit)
discards 0df50239629154b1764e5913eca0a4957b3fe8c1 (commit)
discards f3f7fa20ca15d18317fd31daf7e13efe88f02a45 (commit)
discards 64752940c947d09ef82306107adde7e9d6f33cda (commit)
via ea3a438edd681ee2c2d9d864b4cb9b80d3c5c867 (commit)
via b2a998874f37d267f32ebb987eb1719fd5c2ebcb (commit)
via 4f717cc024f5c959d509d24343a1d4e03ab08bbd (commit)
via 602fc924083865cbe104660c0f724added5ed48f (commit)
via f73de90629e04d201f470cd438ba7842275d5b90 (commit)
via 0167ba81a2e5cdd0d9b88488a46b068dd0a8eb68 (commit)
via 37c9012be49ccb3517c887d0a9e42f973fbe19df (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (e6d70f78a13acfa65347e229ef04bdceb2a87f39)
\
N -- N -- N (ea3a438edd681ee2c2d9d864b4cb9b80d3c5c867)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
ea3a438 mln/core/concept/function.hh: Document function interface for each concept.
b2a9988 Kill Doxygen warnings.
4f717cc Specify conversion formulas for rgb to integer conversion functions.
602fc92 Create sub-modules in image geometry module.
f73de90 doc/mln/convert.dox: Fix typos.
0167ba8 Add documentation about image conversions.
37c9012 mln/data/convert.hh: Introduce a new overload taking a conversion function as parameter.
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena: olena-2.0-555-g0167ba8 Add documentation about image conversions.
by Guillaume Lazzara 23 Apr '13
by Guillaume Lazzara 23 Apr '13
23 Apr '13
* doc/mln/convert.dox: Add examples and explanations.
* mln/convert/from_to.hh,
* mln/convert/to.hh,
* mln/convert/to_image.hh,
* mln/convert/to_p_array.hh,
* mln/convert/to_p_set.hh,
* mln/convert/to_qimage.hh,
* mln/convert/to_qimage_nocopy.hh,
* mln/convert/to_upper_window.hh,
* mln/convert/to_window.hh,
* mln/data/convert.hh,
* mln/fun/v2v/convert.hh,
* mln/fun/v2v/hsl_to_rgb.hh,
* mln/fun/v2v/qt_rgb_to_int_u.hh,
* mln/fun/v2v/rgb8_to_rgbn.hh,
* mln/fun/v2v/rgb_to_hsl.hh,
* mln/fun/v2v/rgb_to_int_u.hh,
* mln/fun/v2v/rgb_to_luma.hh: Add to conversion module.
---
milena/ChangeLog | 24 +++++
milena/doc/mln/convert.dox | 165 +++++++++++++++++++++++++++++++-
milena/mln/convert/from_to.hh | 2 +-
milena/mln/convert/to.hh | 19 ++++-
milena/mln/convert/to_image.hh | 28 ++++-
milena/mln/convert/to_p_array.hh | 21 +++-
milena/mln/convert/to_p_set.hh | 35 ++++++--
milena/mln/convert/to_qimage.hh | 18 +++-
milena/mln/convert/to_qimage_nocopy.hh | 24 +++++-
milena/mln/convert/to_upper_window.hh | 14 ++-
milena/mln/convert/to_window.hh | 23 ++++-
milena/mln/data/convert.hh | 14 ++-
milena/mln/fun/v2v/convert.hh | 16 +++-
milena/mln/fun/v2v/hsl_to_rgb.hh | 13 ++-
milena/mln/fun/v2v/qt_rgb_to_int_u.hh | 8 ++-
milena/mln/fun/v2v/rgb8_to_rgbn.hh | 31 +++---
milena/mln/fun/v2v/rgb_to_hsl.hh | 27 +++++-
milena/mln/fun/v2v/rgb_to_int_u.hh | 15 +++-
milena/mln/fun/v2v/rgb_to_luma.hh | 13 +++-
19 files changed, 436 insertions(+), 74 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index f25eaf7..86129ef 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,29 @@
2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Add documentation about image conversions.
+
+ * doc/mln/convert.dox: Add examples and explanations.
+
+ * mln/convert/from_to.hh,
+ * mln/convert/to.hh,
+ * mln/convert/to_image.hh,
+ * mln/convert/to_p_array.hh,
+ * mln/convert/to_p_set.hh,
+ * mln/convert/to_qimage.hh,
+ * mln/convert/to_qimage_nocopy.hh,
+ * mln/convert/to_upper_window.hh,
+ * mln/convert/to_window.hh,
+ * mln/data/convert.hh,
+ * mln/fun/v2v/convert.hh,
+ * mln/fun/v2v/hsl_to_rgb.hh,
+ * mln/fun/v2v/qt_rgb_to_int_u.hh,
+ * mln/fun/v2v/rgb8_to_rgbn.hh,
+ * mln/fun/v2v/rgb_to_hsl.hh,
+ * mln/fun/v2v/rgb_to_int_u.hh,
+ * mln/fun/v2v/rgb_to_luma.hh: Add to conversion module.
+
+2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
* mln/data/convert.hh: Introduce a new overload taking a
conversion function as parameter.
diff --git a/milena/doc/mln/convert.dox b/milena/doc/mln/convert.dox
index bb2b1e6..158fb43 100644
--- a/milena/doc/mln/convert.dox
+++ b/milena/doc/mln/convert.dox
@@ -1,9 +1,164 @@
/*! \defgroup convert Convertion Routines
- *
- * \brief All conversion routines provided in Milena.
- *
- * \ingroup modroutines
- */
+
+ \brief All conversion routines provided in Milena.
+
+ Type conversions in Olena mainly relies on convert::from_to(). This
+ routine works on a single value only.
+
+ Type conversion of image value types relies on data::convert. This
+ routine relies on convert::from_to(). For each pixel value,
+ convert::from_to() is called.
+
+ Examples of use:
+ \code
+ image2d<value::int_u8> ima_gl;
+ // Initialization of ima_gl.
+ // ...
+ image2d<value::rgb8> ima_color = mln::data::convert(value::rgb8(), ima_gl);
+ \endcode
+
+ \code
+ image2d<value::int_u8> ima_gl;
+ // Initialization of ima_gl.
+ // ...
+ image2d<bool> ima_b = mln::data::convert(bool(), ima_gl);
+ \endcode
+
+
+ Sometimes, no default conversion is available from type \c
+ mln_value(I) to \c V. It fails with a compilation error such as:
+
+ \code
+ #include <mln/core/image/image2d.hh>
+ #include <mln/data/convert.hh>
+ #include <mln/value/int_u8.hh>
+ #include <mln/value/rgb8.hh>
+
+ int main()
+ {
+ using namespace mln;
+
+ image2d<value::rgb8> ima_color;
+ // Initialization of ima_color
+ // ...
+ image2d<value::int_u8> ima_gl = data::convert(value::int_u8(), ima_color);
+ }
+ \endcode
+ \code
+ $ g++ -I$OLN/milena main.cc
+ ...
+ /my/path/to/oln/milena/mln/convert/from_to.hh:152:5: error: ‘check’ is not a member of ‘mln::metal::abort_<mln::value::rgb<8u> >’
+ \endcode
+
+ Missing conversion is sometimes due to non-trivial
+ conversions. Here, converting a value::rgb8 towards a value::int_u8
+ implies to compute the luminance, but several formulae exist.
+
+ For a single use of a specific conversion, the shortest way is to
+ use the data::convert() overload which takes a conversion function.
+ It must be used with one of conversion function listed on this page.
+
+ \code
+ #include <mln/core/image/image2d.hh>
+ #include <mln/data/convert.hh>
+ #include <mln/value/int_u8.hh>
+ #include <mln/value/rgb8.hh>
+ #include <mln/fun/v2v/rgb_to_luma.hh>
+
+ int main()
+ {
+ using namespace mln;
+
+ image2d<value::rgb8> ima_color;
+ // Initialization of ima_color
+ // ...
+ image2d<value::int_u8> ima_gl = data::convert(fun::v2v::rgb_to_luma<value::int_u8>(), ima_color);
+ }
+ \endcode
+
+ It is also possible to declare a user-defined function. Just declare
+ a class that inherits from the mln::Function_v2v class and respects
+ the required interface.
+
+ \code
+ #include <mln/core/image/image2d.hh>
+ #include <mln/data/convert.hh>
+ #include <mln/value/int_u8.hh>
+ #include <mln/value/rgb8.hh>
+ #include <mln/fun/v2v/rgb_to_luma.hh>
+
+ namespace mln
+ {
+ struct only_red_component : public Function_v2v<only_red_component>
+ {
+ typedef value::int_u8 result;
+ typedef mln::value::rgb8 argument;
+
+ result operator()(const argument& v) const
+ {
+ return v.red();
+ }
+ };
+
+ } // end of namespace mln
+
+ int main()
+ {
+ using namespace mln;
+
+ image2d<value::rgb8> ima_color;
+ // Initialization of ima_color
+ // ...
+ image2d<value::int_u8> ima_red_gl = data::convert(only_red_component(), ima_color);
+ }
+ \endcode
+
+
+ If a program requires conversions that are not provided by default
+ they can be defined manually by declaring a from_to_()
+ overload. Default overloads are listed in module \ref fromto.
+
+ \code
+ #include <mln/core/image/image2d.hh>
+ #include <mln/data/convert.hh>
+ #include <mln/value/int_u8.hh>
+ #include <mln/value/rgb8.hh>
+
+ namespace mln
+ {
+ namespace value
+ {
+
+ void from_to_(const value::rgb8& from, value::int_u8& to)
+ {
+ to = (from.red() + from.green() + from.blue()) / 3;
+ }
+
+ } // end of namespace mln::value
+ } // end of namespace mln
+
+ int main()
+ {
+ using namespace mln;
+
+ image2d<value::rgb8> ima_color;
+ // Initialization of ima_color
+ // ...
+ image2d<value::int_u8> ima_red_gl = data::convert(value::int_u8(), ima_color);
+ }
+ \endcode
+
+ Such declarations extend the capabilities of from_to() and all
+ conversion routines relying on it.
+
+ \warning In order to work properly, the from_to_ overload must be
+ declared in the exact same namespace as its first argument. In case
+ the first argument is a builtin type (e.g. int), rely on the second
+ argument namespace. from_to_ overload resolution relies on the
+ Argument-Dependent Lookup (ADL) provided by C++.
+
+ \ingroup modroutines
+*/
/*! \defgroup fromto from_to_ Routines
*
diff --git a/milena/mln/convert/from_to.hh b/milena/mln/convert/from_to.hh
index 32a471d..2befb57 100644
--- a/milena/mln/convert/from_to.hh
+++ b/milena/mln/convert/from_to.hh
@@ -58,7 +58,7 @@ namespace mln
namespace convert
{
- /*! \brief Value conversion routine.
+ /*! \brief Conversion routine.
This is a generic function to convert an object towards another
one.
diff --git a/milena/mln/convert/to.hh b/milena/mln/convert/to.hh
index 6dc72e9..699b71d 100644
--- a/milena/mln/convert/to.hh
+++ b/milena/mln/convert/to.hh
@@ -46,7 +46,24 @@ namespace mln
{
- /// Conversion of the object \p from towards an object with type \c T.
+ /*!
+ \brief Conversion of the object \p from towards an object with
+ type \c T.
+
+ This routine relies on from_to().
+
+ It is provided for conveniance.
+
+ \warning The destination type must be specified as template
+ parameter while calling this function.
+
+ \code
+ value::int_u8 gl = 3;
+ value::rgb8 color = convert::to<value::rgb8>(gl);
+ \endcode
+
+ \ingroup convert
+ */
template <typename T, typename O>
T
to(const O& from);
diff --git a/milena/mln/convert/to_image.hh b/milena/mln/convert/to_image.hh
index 71fde90..2eda6e7 100644
--- a/milena/mln/convert/to_image.hh
+++ b/milena/mln/convert/to_image.hh
@@ -55,28 +55,44 @@ namespace mln
{
- /// Convert a point set \p pset into a binary image. Width of the
- /// converted image will be pset.bbox + 2 * \p border.
+ /*!
+ \brief Convert a point set \p pset into a binary image.
+
+ Width of the converted image will be pset.bbox + 2 * \p border.
+ \ingroup convert
+ */
template <typename S>
mln_image_from_grid(mln_site(S)::grid, bool)
to_image(const Site_Set<S>& pset, unsigned border = 1);
- /// Convert a window \p win into a binary image.
+ /*!
+ \brief Convert a window \p win into a binary image.
+ \ingroup convert
+ */
template <typename W>
mln_image_from_grid(mln_site(W)::grid, bool)
to_image(const Window<W>& win);
- /// Convert a weighted window \p w_win into an image.
+ /*!
+ \brief Convert a weighted window \p w_win into an image.
+ \ingroup convert
+ */
template <typename W>
mln_image_from_grid(mln_site(W)::grid, mln_weight(W))
to_image(const Weighted_Window<W>& w_win);
- /// Convert a neighborhood \p nbh into a binary image.
+ /*!
+ \brief Convert a neighborhood \p nbh into a binary image.
+ \ingroup convert
+ */
template <typename N>
mln_image_from_grid(mln_site(N)::grid, bool)
to_image(const Neighborhood<N>& nbh);
- /// Convert an histo \p h into an image1d<unsigned>.
+ /*!
+ \brief Convert an histo \p h into an image1d<unsigned>.
+ \ingroup convert
+ */
template <typename T>
image1d<unsigned>
to_image(const histo::array<T>& h);
diff --git a/milena/mln/convert/to_p_array.hh b/milena/mln/convert/to_p_array.hh
index 24d64fc..3d54b53 100644
--- a/milena/mln/convert/to_p_array.hh
+++ b/milena/mln/convert/to_p_array.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.
//
@@ -43,18 +44,28 @@ namespace mln
namespace convert
{
- /// Convert a point set \p pset into a p_array (point set vector).
+ /*!
+ \brief Convert a point set \p pset into a p_array (point set vector).
+ \ingroup convert
+ */
template <typename S>
p_array<mln_psite(S)> to_p_array(const Site_Set<S>& pset);
- /// Convert a window \p win centered at point \p p into a p_array
- /// (point set vector).
+ /*!
+ \brief Convert a window \p win centered at point \p p into a p_array
+ (point set vector).
+
+ \ingroup convert
+ */
template <typename W>
p_array<mln_psite(W)> to_p_array(const Window<W>& win,
const mln_psite(W)& p);
- /// Convert an image \p img into a p_array.
+ /*!
+ \brief Convert an image \p img into a p_array.
+ \ingroup convert
+ */
template <typename I>
p_array<mln_psite(I)>
to_p_array(const Image<I>& img);
diff --git a/milena/mln/convert/to_p_set.hh b/milena/mln/convert/to_p_set.hh
index 46cd5e7..5758579 100644
--- a/milena/mln/convert/to_p_set.hh
+++ b/milena/mln/convert/to_p_set.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.
//
@@ -48,28 +49,48 @@ namespace mln
namespace convert
{
- /// Convert a neighborhood \p nbh into a site set.
+ /*!
+ \brief Convert a neighborhood \p nbh into a site set.
+ \ingroup convert
+ */
template <typename N>
p_set<mln_psite(N)>
to_p_set(const Neighborhood<N>& nbh);
- /// Convert a binary image \p ima into a site set.
+ /*!
+ \brief Convert a binary image \p ima into a site set.
+ \ingroup convert
+ */
template <typename I>
p_set<mln_psite(I)>
to_p_set(const Image<I>& ima);
- /// Convert a Window \p win into a site set.
+ /*!
+ \brief Convert a Window \p win into a site set.
+ \ingroup convert
+ */
template <typename W>
p_set<mln_psite(W)>
to_p_set(const Window<W>& win);
- /// Convert an std::set \p s of sites into a site set.
- /// C is the comparison functor.
+ /*!
+ \brief Convert an std::set \p s of sites into a site set.
+
+ \tparam P is the site type.
+ \tparam C is the comparison functor.
+
+ \ingroup convert
+ */
template <typename P, typename C>
p_set<P>
to_p_set(const std::set<P, C>& s);
- /// Convert any site set \p ps into a 'mln::p_set<>' site set.
+ /*!
+ \brief Convert any site set \p ps into a 'mln::p_set<>' site
+ set.
+
+ \ingroup convert
+ */
template <typename S>
p_set<mln_psite(S)>
to_p_set(const Site_Set<S>& ps);
diff --git a/milena/mln/convert/to_qimage.hh b/milena/mln/convert/to_qimage.hh
index fd90125..b6f84a6 100755
--- a/milena/mln/convert/to_qimage.hh
+++ b/milena/mln/convert/to_qimage.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2010, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -56,9 +56,17 @@ namespace mln
namespace convert
{
- /// \brief Convert a Milena image to a Qimage.
- ///
- //
+ /*!
+ \brief Convert a Milena image to a Qimage by copying data.
+
+ This function requires the library <a
+ href="http://www.qt-project.org">Qt</a> 4.x or 5.x.
+
+ This function copies the content of \p ima into the QImage
+ output.
+
+ \ingroup convert
+ */
template <typename I>
inline
QImage
diff --git a/milena/mln/convert/to_qimage_nocopy.hh b/milena/mln/convert/to_qimage_nocopy.hh
index 2820f0e..2d5df86 100755
--- a/milena/mln/convert/to_qimage_nocopy.hh
+++ b/milena/mln/convert/to_qimage_nocopy.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -52,6 +53,26 @@ namespace mln
namespace convert
{
+ /*!
+ \brief Convert a Milena image to a Qimage without copy.
+
+ This function requires the library <a
+ href="http://www.qt-project.org">Qt</a> 4.x or 5.x.
+
+ It does not copy any data. The underlying data remains held by
+ \p ima.
+
+ \warning \p ima must remain valid until QImage is destroyed.
+
+ \ingroup convert
+ */
+ template <typename I>
+ inline
+ QImage to_qimage_nocopy(const Image<I>& ima);
+
+
+# ifndef MLN_INCLUDE_ONLY
+
// Implementation
namespace impl
@@ -171,6 +192,7 @@ namespace mln
return output;
}
+# endif // ! MLN_INCLUDE_ONLY
} // end of namespace mln::convert
diff --git a/milena/mln/convert/to_upper_window.hh b/milena/mln/convert/to_upper_window.hh
index aae46e2..af0b7f7 100644
--- a/milena/mln/convert/to_upper_window.hh
+++ b/milena/mln/convert/to_upper_window.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.
//
@@ -42,11 +43,18 @@ namespace mln
namespace convert
{
- /// Convert a window \p nbh into an upper window.
+ /*!
+ \brief Convert a window \p nbh into an upper window.
+
+ \ingroup convert
+ */
template <typename W>
window<mln_dpsite(W)> to_upper_window(const Window<W>& win);
- /// Convert a neighborhood \p nbh into an upper window.
+ /*!
+ \brief Convert a neighborhood \p nbh into an upper window.
+ \ingroup convert
+ */
template <typename N>
window<mln_dpoint(N)> to_upper_window(const Neighborhood<N>& nbh);
diff --git a/milena/mln/convert/to_window.hh b/milena/mln/convert/to_window.hh
index 9114a00..a5697ff 100644
--- a/milena/mln/convert/to_window.hh
+++ b/milena/mln/convert/to_window.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.
//
@@ -46,19 +47,31 @@ namespace mln
namespace convert
{
- /// Convert a neighborhood \p nbh into a window.
+ /*!
+ Convert a neighborhood \p nbh into a window.
+ \ingroup convert
+ */
template <typename N>
mln_window(N) to_window(const Neighborhood<N>& nbh);
- /// Convert a binary image \p ima into a window.
+ /*!
+ \brief Convert a binary image \p ima into a window.
+ \ingroup convert
+ */
template <typename I>
window<mln_site(I)::dpsite> to_window(const Image<I>& ima);
- /// Convert a site set \p pset into a window.
+ /*!
+ \brief Convert a site set \p pset into a window.
+ \ingroup convert
+ */
template <typename S>
window<mln_site(S)::dpsite> to_window(const Site_Set<S>& pset);
- /// Convert an std::set \p s of delta-sites into a window.
+ /*!
+ \brief Convert an std::set \p s of delta-sites into a window.
+ \ingroup convert
+ */
template <typename D, typename C>
window<D> to_window(const std::set<D, C>& s);
diff --git a/milena/mln/data/convert.hh b/milena/mln/data/convert.hh
index f004076..2c2a4f0 100644
--- a/milena/mln/data/convert.hh
+++ b/milena/mln/data/convert.hh
@@ -45,11 +45,15 @@ namespace mln
{
/*! \brief Convert the image \p input by changing the value type.
- *
- * \param[in] v A value of the destination type.
- * \param[in] input The input image.
- *
- * \ingroup mlndata
+
+ \param[in] v A value of the destination type. Its type is used
+ to specify the target value type. The value itself
+ is unused.
+ \param[in] input The input image.
+
+ \return An image of value type V.
+
+ \ingroup mlndata convert
*/
template <typename V, typename I>
mln_ch_value(I, V)
diff --git a/milena/mln/fun/v2v/convert.hh b/milena/mln/fun/v2v/convert.hh
index e1064b8..42c4229 100644
--- a/milena/mln/fun/v2v/convert.hh
+++ b/milena/mln/fun/v2v/convert.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -28,7 +29,7 @@
/// \file
///
-/// FIXME.
+/// \brief Function which relies on from_to() to convert values.
///
/// \todo The function is intrisically meta; how to handle that
/// particular case?
@@ -47,13 +48,22 @@ namespace mln
namespace v2v
{
- // FIXME: Doc!
+ /*! \brief Function which relies on from_to() to convert values.
+ \tparam V The destination type.
+
+ This function relies on convert::from_to().
+
+ \sa data::convert.
+ \ingroup modfunv2v convert
+ */
template <typename V>
struct convert : public Function_v2v< convert<V> >
{
typedef V result;
+ /// Convert a value of type \c W towards type \c V thanks to
+ /// convert::from_to().
template <typename W>
V operator()(const W& w) const;
};
diff --git a/milena/mln/fun/v2v/hsl_to_rgb.hh b/milena/mln/fun/v2v/hsl_to_rgb.hh
index 4470681..25f5d10 100644
--- a/milena/mln/fun/v2v/hsl_to_rgb.hh
+++ b/milena/mln/fun/v2v/hsl_to_rgb.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -54,10 +54,11 @@ namespace mln
namespace v2v
{
- /// \brief Convert hsl values to rgb.
- ///
- /// \ingroup modfunv2v
- //
+ /*!
+ \brief Convert hsl values to rgb.
+
+ \ingroup modfunv2v convert
+ */
template <typename T_rgb>
struct f_hsl_to_rgb_ : public Function_v2v< f_hsl_to_rgb_<T_rgb> >
{
diff --git a/milena/mln/fun/v2v/qt_rgb_to_int_u.hh b/milena/mln/fun/v2v/qt_rgb_to_int_u.hh
index 17292fb..3a60763 100644
--- a/milena/mln/fun/v2v/qt_rgb_to_int_u.hh
+++ b/milena/mln/fun/v2v/qt_rgb_to_int_u.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -43,6 +44,11 @@ namespace mln
namespace v2v
{
+ /*!
+ \brief Convert value::qt::rgb32 values to value::int_u8.
+
+ \ingroup modfunv2v convert
+ */
template <unsigned n>
struct qt_rgb_to_int_u : Function_v2v< qt_rgb_to_int_u<n> >
{
diff --git a/milena/mln/fun/v2v/rgb8_to_rgbn.hh b/milena/mln/fun/v2v/rgb8_to_rgbn.hh
index 74b713e..d4cab2e 100644
--- a/milena/mln/fun/v2v/rgb8_to_rgbn.hh
+++ b/milena/mln/fun/v2v/rgb8_to_rgbn.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2010, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -47,25 +47,26 @@ namespace mln
{
- /// \brief Convert a rgb8 value to a rgn, n < 8.
- ///
- /// \param n defines the output quantification used for the transformation.
- ///
- /// \ingroup modfunv2v
- //
+ /*! \brief Convert a rgb8 value to a rgn, n < 8.
+
+ \tparam n defines the output quantification used for the transformation.
+
+ \ingroup modfunv2v convert
+ */
template <unsigned n>
struct rgb8_to_rgbn : Function_v2v< rgb8_to_rgbn<n> >
{
typedef value::rgb8 argument;
typedef value::rgb<n> result;
- /// \brief Convert a rgb8 value to a rgn, n < 8.
- ///
- /// \param[in] c the rgb8 value to convert.
- ///
- /// Conversion is done by computing the size by which we
- /// divide each rgb component.
- //
+ /*!
+ \brief Convert a rgb8 value to a rgn, n < 8.
+
+ \param[in] c the rgb8 value to convert.
+
+ Conversion is done by computing the size by which we
+ divide each rgb component.
+ */
result operator()(const argument& c) const;
};
diff --git a/milena/mln/fun/v2v/rgb_to_hsl.hh b/milena/mln/fun/v2v/rgb_to_hsl.hh
index 11339fd..177069f 100644
--- a/milena/mln/fun/v2v/rgb_to_hsl.hh
+++ b/milena/mln/fun/v2v/rgb_to_hsl.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -27,6 +27,10 @@
#ifndef MLN_FUN_V2V_RGB_TO_HSL_HH
# define MLN_FUN_V2V_RGB_TO_HSL_HH
+/// \file
+///
+/// \brief Conversion function from value::rgb to value::hsl_.
+
# include <cmath>
# include <mln/math/round.hh>
@@ -51,6 +55,13 @@ namespace mln
namespace v2v
{
+ /*!
+ \brief conversion function from value:rgb to value::hsl_.
+
+ \tparam T_hsl The desired output hsl type.
+
+ \ingroup modfunv2v convert
+ */
template <typename T_hsl>
struct f_rgb_to_hsl_ : public Function_v2v< f_rgb_to_hsl_<T_hsl> >
{
@@ -63,8 +74,20 @@ namespace mln
};
+ /*!
+ \brief Type of a default conversion function from value::rgb
+ to value::hsl_f.
+
+ \ingroup modfunv2v convert
+ */
typedef f_rgb_to_hsl_<value::hsl_f> f_rgb_to_hsl_f_t;
+ /*!
+ \brief Predefined conversion functor converting from value::rgb
+ to value::hsl_f.
+
+ \ingroup modfunv2v convert
+ */
extern f_rgb_to_hsl_f_t f_rgb_to_hsl_f;
diff --git a/milena/mln/fun/v2v/rgb_to_int_u.hh b/milena/mln/fun/v2v/rgb_to_int_u.hh
index 1be1ae2..a6a6feb 100644
--- a/milena/mln/fun/v2v/rgb_to_int_u.hh
+++ b/milena/mln/fun/v2v/rgb_to_int_u.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -24,6 +24,9 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
+/// \file
+///
+/// \brief Conversion function from value::rgb to value::int_u.
#ifndef MLN_FUN_V2V_RGB_TO_INT_U_HH
# define MLN_FUN_V2V_RGB_TO_INT_U_HH
@@ -41,6 +44,14 @@ namespace mln
namespace v2v
{
+ /*!
+ \brief Conversion function from value::rgb to value::int_u.
+
+ \tparam n Defines the number of bits of the integer
+ destination type.
+
+ \ingroup modfunv2v convert
+ */
template <unsigned n>
struct rgb_to_int_u : Function_v2v< rgb_to_int_u<n> >
{
diff --git a/milena/mln/fun/v2v/rgb_to_luma.hh b/milena/mln/fun/v2v/rgb_to_luma.hh
index 304a798..92c603a 100644
--- a/milena/mln/fun/v2v/rgb_to_luma.hh
+++ b/milena/mln/fun/v2v/rgb_to_luma.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2011, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -23,6 +24,10 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
+/// \file
+///
+/// \brief Conversion function from value::rgb to integer value type.
+
#ifndef MLN_FUN_V2V_RGB_TO_LUMA_HH
# define MLN_FUN_V2V_RGB_TO_LUMA_HH
@@ -37,6 +42,12 @@ namespace mln
namespace v2v
{
+ /*!
+ \brief Conversion function from a RGB value to an integer
+ value type.
+
+ \ingroup modfunv2v convert
+ */
template <typename T_luma>
struct rgb_to_luma : public Function_v2v< rgb_to_luma<T_luma> >
{
--
1.7.2.5
1
0

olena: olena-2.0-554-g37c9012 mln/data/convert.hh: Introduce a new overload taking a conversion function as parameter.
by Guillaume Lazzara 23 Apr '13
by Guillaume Lazzara 23 Apr '13
23 Apr '13
---
milena/ChangeLog | 5 +++++
milena/mln/data/convert.hh | 24 ++++++++++++++++++++++++
2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 3f29bbc..f25eaf7 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,10 @@
2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+ * mln/data/convert.hh: Introduce a new overload taking a
+ conversion function as parameter.
+
+2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Add references to from_to_ overloads in documentation.
* mln/algebra/h_mat.hh,
diff --git a/milena/mln/data/convert.hh b/milena/mln/data/convert.hh
index 260baac..f004076 100644
--- a/milena/mln/data/convert.hh
+++ b/milena/mln/data/convert.hh
@@ -55,6 +55,18 @@ namespace mln
mln_ch_value(I, V)
convert(const V& v, const Image<I>& input);
+ /*!
+ \brief Convert the image \p input by changing the value type.
+ \overload
+
+ This overload allows to specify a specific conversion function
+ thanks to parameter \p convert_function.
+
+ \ingroup mlndata convert
+ */
+ template <typename F, typename I>
+ mln_ch_value(I, mln_result(F))
+ convert(const Function_v2v<F>& convert_function, const Image<I>& input);
# ifndef MLN_INCLUDE_ONLY
@@ -163,6 +175,18 @@ namespace mln
return output;
}
+ template <typename F, typename I>
+ mln_ch_value(I, mln_result(F))
+ convert(const Function_v2v<F>& convert_function, const Image<I>& input)
+ {
+ mln_trace("data::convert");
+ typedef mln_result(F) V;
+ internal::convert_tests(V(), input);
+
+ mln_ch_value(I, V) output = data::transform(input, convert_function);
+
+ return output;
+ }
# endif // ! MLN_INCLUDE_ONLY
--
1.7.2.5
1
0

22 Apr '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/upscale has been created
at 9ab50d8e723ac787402dd898ecf3c33a02332bd5 (commit)
- Log -----------------------------------------------------------------
9ab50d8 milena/mln/upscaling/upscaling_bicubic_2x.hh: Add function to upscale x2 with bicubic interpolation.
-----------------------------------------------------------------------
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena: olena-2.0-633-ge7c6040 milena/mln/upscaling/upscaling_bicubic_2x.hh: Add function to upscale x2 with bicubic interpolation.
by myriam robert-seidowsky 22 Apr '13
by myriam robert-seidowsky 22 Apr '13
22 Apr '13
---
milena/mln/upscaling/upscaling_bicubic_2x.hh | 145 ++++++++++++++++++++++++++
1 files changed, 145 insertions(+), 0 deletions(-)
create mode 100644 milena/mln/upscaling/upscaling_bicubic_2x.hh
diff --git a/milena/mln/upscaling/upscaling_bicubic_2x.hh b/milena/mln/upscaling/upscaling_bicubic_2x.hh
new file mode 100644
index 0000000..67ed639
--- /dev/null
+++ b/milena/mln/upscaling/upscaling_bicubic_2x.hh
@@ -0,0 +1,145 @@
+// Copyright (C) 2013 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of Olena.
+//
+// Olena is free software: you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation, version 2 of the License.
+//
+// Olena 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 Olena. If not, see <http://www.gnu.org/licenses/>.
+//
+// As a special exception, you may use this file as part of a free
+// software project 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. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
+
+#ifndef MLN_UPSCALING_UPSCALE_BICUBIC_2X_HH
+#define MLN_UPSCALING_UPSCALE_BICUBIC_2X_HH
+
+#include <mln/core/image/image2d.hh>
+
+
+/// \file
+///
+/// \brief upscale image x2 with bicubic interpolation.
+
+namespace mln {
+
+ namespace upscaling {
+
+ /**
+ \tparam image_in_ the input image (not modified by the algorithm).
+
+ \return An upscaled x2 image.
+
+ \author J. Fabrizio.
+ */
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_x2_fastest(const Image<I>& in_image_);
+
+#ifndef MLN_INCLUDE_ONLY
+
+ namespace impl {
+
+ template<typename V>
+ inline V tl_bicubic_interpol(const V& v0, const V& v1, const V& v2, const V& v3) {
+ double P = (v3 - v2) - (v0 - v1);
+ double Q = (v0 - v1) - P;
+ double R = v2 - v0;
+ double S = v1;
+ double result = round(P * 0.125 + Q * 0.25 + R * 0.5 + S);
+ result = (result < 0) ? 0 : result;
+ result = (result > mln_max(V)) ? (double) mln_max(V) : result;
+ return (V) result;
+ }
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_x2_fastest(const Image<I>& in_image_) {
+
+ mln_trace("upscaling::upscaling_bicubic_x2");
+ const I& in_image = exact(in_image_);
+ mln_precondition(in_image.is_valid());
+ mln_domain(I) ext_domain(in_image.domain().pmin() * 2,
+ in_image.domain().pmax() * 2);
+ mln_concrete(I) output(ext_domain);
+ data::fill(output, 0);
+
+ mln_concrete(I) tmp;
+ initialize(tmp, in_image);
+ data::fill(tmp, 0);
+
+ int x, y, k, l;
+
+ for (def::coord row = 1; row < in_image.nrows(); ++row)
+ for (def::coord col = 1; col < in_image.ncols(); ++col) {
+ opt::at(tmp, row, col) = tl_bicubic_interpol(in_image(point2d(row, col - 1)), in_image(point2d(row, col)), in_image(point2d(row, col + 1)), in_image(point2d(row, col + 2)));
+ }
+
+ for (def::coord row = 1, k = 1; row < in_image.nrows(); row++, k += 2)
+ for (def::coord col = 1, l = 1; col < in_image.ncols(); col++, l += 2) {
+ opt::at(output, k, l) = in_image(point2d(row, col));
+ opt::at(output, k + 1, l) = tmp(point2d(row, col));
+ opt::at(output, k, l + 1) = tl_bicubic_interpol(in_image(point2d(row - 1, col)), in_image(point2d(row, col)), in_image(point2d(row + 1, col)), in_image(point2d(row + 2, col)));
+ opt::at(output, k + 1, l + 1) = tl_bicubic_interpol(tmp(point2d(row - 1, col)), tmp(point2d(row, col)), tmp(point2d(row + 1, col)), tmp(point2d(row + 2, col)));
+ }
+
+ return output;
+ }
+
+ }// end of namespace mln::upscaling::impl
+
+
+ namespace internal {
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_dispatch(const Image<I>& in_image_
+ , mln::trait::image::speed::any) {
+ mlc_abort(I)::check();
+ }
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_dispatch(const Image<I>& in_image_,
+ mln::trait::image::speed::fastest) {
+ return mln::upscaling::impl::upscale_bicubic_x2_fastest(in_image_);
+ }
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_dispatch(const Image<I>& in_image_) {
+ return upscale_bicubic_dispatch(in_image_,
+ mln_trait_image_speed(I)());
+ }
+
+ }//end of namespace namespace mln::binarization::internal
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_x2_fastest(const Image<I>& in_image_) {
+ const I& ima = exact(in_image_);
+ return mln::upscaling::internal::upscale_bicubic_dispatch(ima);
+ }
+
+
+
+#endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::upscaling
+
+
+} // end of namespace mln
+
+#endif // ! MLN_UPSCALING_UPSCALE_BICUBIC_2X_HH
--
1.7.2.5
1
0

olena: olena-2.0-509-g9ab50d8 milena/mln/upscaling/upscaling_bicubic_2x.hh: Add function to upscale x2 with bicubic interpolation.
by myriam robert-seidowsky 22 Apr '13
by myriam robert-seidowsky 22 Apr '13
22 Apr '13
---
milena/mln/upscaling/upscaling_bicubic_2x.hh | 145 ++++++++++++++++++++++++++
1 files changed, 145 insertions(+), 0 deletions(-)
create mode 100644 milena/mln/upscaling/upscaling_bicubic_2x.hh
diff --git a/milena/mln/upscaling/upscaling_bicubic_2x.hh b/milena/mln/upscaling/upscaling_bicubic_2x.hh
new file mode 100644
index 0000000..67ed639
--- /dev/null
+++ b/milena/mln/upscaling/upscaling_bicubic_2x.hh
@@ -0,0 +1,145 @@
+// Copyright (C) 2013 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of Olena.
+//
+// Olena is free software: you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation, version 2 of the License.
+//
+// Olena 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 Olena. If not, see <http://www.gnu.org/licenses/>.
+//
+// As a special exception, you may use this file as part of a free
+// software project 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. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
+
+#ifndef MLN_UPSCALING_UPSCALE_BICUBIC_2X_HH
+#define MLN_UPSCALING_UPSCALE_BICUBIC_2X_HH
+
+#include <mln/core/image/image2d.hh>
+
+
+/// \file
+///
+/// \brief upscale image x2 with bicubic interpolation.
+
+namespace mln {
+
+ namespace upscaling {
+
+ /**
+ \tparam image_in_ the input image (not modified by the algorithm).
+
+ \return An upscaled x2 image.
+
+ \author J. Fabrizio.
+ */
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_x2_fastest(const Image<I>& in_image_);
+
+#ifndef MLN_INCLUDE_ONLY
+
+ namespace impl {
+
+ template<typename V>
+ inline V tl_bicubic_interpol(const V& v0, const V& v1, const V& v2, const V& v3) {
+ double P = (v3 - v2) - (v0 - v1);
+ double Q = (v0 - v1) - P;
+ double R = v2 - v0;
+ double S = v1;
+ double result = round(P * 0.125 + Q * 0.25 + R * 0.5 + S);
+ result = (result < 0) ? 0 : result;
+ result = (result > mln_max(V)) ? (double) mln_max(V) : result;
+ return (V) result;
+ }
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_x2_fastest(const Image<I>& in_image_) {
+
+ mln_trace("upscaling::upscaling_bicubic_x2");
+ const I& in_image = exact(in_image_);
+ mln_precondition(in_image.is_valid());
+ mln_domain(I) ext_domain(in_image.domain().pmin() * 2,
+ in_image.domain().pmax() * 2);
+ mln_concrete(I) output(ext_domain);
+ data::fill(output, 0);
+
+ mln_concrete(I) tmp;
+ initialize(tmp, in_image);
+ data::fill(tmp, 0);
+
+ int x, y, k, l;
+
+ for (def::coord row = 1; row < in_image.nrows(); ++row)
+ for (def::coord col = 1; col < in_image.ncols(); ++col) {
+ opt::at(tmp, row, col) = tl_bicubic_interpol(in_image(point2d(row, col - 1)), in_image(point2d(row, col)), in_image(point2d(row, col + 1)), in_image(point2d(row, col + 2)));
+ }
+
+ for (def::coord row = 1, k = 1; row < in_image.nrows(); row++, k += 2)
+ for (def::coord col = 1, l = 1; col < in_image.ncols(); col++, l += 2) {
+ opt::at(output, k, l) = in_image(point2d(row, col));
+ opt::at(output, k + 1, l) = tmp(point2d(row, col));
+ opt::at(output, k, l + 1) = tl_bicubic_interpol(in_image(point2d(row - 1, col)), in_image(point2d(row, col)), in_image(point2d(row + 1, col)), in_image(point2d(row + 2, col)));
+ opt::at(output, k + 1, l + 1) = tl_bicubic_interpol(tmp(point2d(row - 1, col)), tmp(point2d(row, col)), tmp(point2d(row + 1, col)), tmp(point2d(row + 2, col)));
+ }
+
+ return output;
+ }
+
+ }// end of namespace mln::upscaling::impl
+
+
+ namespace internal {
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_dispatch(const Image<I>& in_image_
+ , mln::trait::image::speed::any) {
+ mlc_abort(I)::check();
+ }
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_dispatch(const Image<I>& in_image_,
+ mln::trait::image::speed::fastest) {
+ return mln::upscaling::impl::upscale_bicubic_x2_fastest(in_image_);
+ }
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_dispatch(const Image<I>& in_image_) {
+ return upscale_bicubic_dispatch(in_image_,
+ mln_trait_image_speed(I)());
+ }
+
+ }//end of namespace namespace mln::binarization::internal
+
+ template<typename I>
+ mln_concrete(I)
+ upscale_bicubic_x2_fastest(const Image<I>& in_image_) {
+ const I& ima = exact(in_image_);
+ return mln::upscaling::internal::upscale_bicubic_dispatch(ima);
+ }
+
+
+
+#endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::upscaling
+
+
+} // end of namespace mln
+
+#endif // ! MLN_UPSCALING_UPSCALE_BICUBIC_2X_HH
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/TL has been updated
via b25251523bbcbc79cba19cd0c413821b83db4b1f (commit)
via 47b72ac7490d216d57bd741ee307e5e71b0ae908 (commit)
via fc5725233277b23ea1f1d5f9bfcf7aad4e286784 (commit)
via 15df2972abb572db54e3ca12773dfe323433a245 (commit)
from 67a45dad80adf097fd6b02e78b0f96e1009dce38 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
b252515 Merge branch 'exp/image2d-ffmpeg' into exp/TL
-----------------------------------------------------------------------
Summary of changes:
milena/mln/core/image/image2d_ffmpeg.hh | 29 ++++++++++++++++++++---------
1 files changed, 20 insertions(+), 9 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena: olena-2.0-514-gb252515 Merge branch 'exp/image2d-ffmpeg' into exp/TL
by myriam robert-seidowsky 22 Apr '13
by myriam robert-seidowsky 22 Apr '13
22 Apr '13
This is a merge commit message of the following branches:
Merge: 67a45da 47b72ac
Conflicts:
milena/mln/core/image/image2d_ffmpeg.hh
milena/mln/core/image/image2d_ffmpeg.hh | 29 ++++++++++++++++++++---------
1 files changed, 20 insertions(+), 9 deletions(-)
diff --cc milena/mln/core/image/image2d_ffmpeg.hh
index 2b727bb,6584f1d..ea000da
--- a/milena/mln/core/image/image2d_ffmpeg.hh
+++ b/milena/mln/core/image/image2d_ffmpeg.hh
@@@ -67,7 -67,8 +67,9 @@@ namespace ml
V** array_;
box2d b_; // theoretical box
--
++
+ void deallocate_();
++
// FIXME: we would like to get border information from ffmpeg.
//box2d vb_;
};
@@@ -255,8 -256,8 +257,7 @@@
data< image2d_ffmpeg<V> >::data(AVFrame *frame)
: frame_(frame)
{
- b_ = make::box2d(frame->height, frame->linesize); // frame->width ?
-
- b_ = make::box2d(frame->height, frame->linesize[0]); // frame->width ?
-
++ b_ = make::box2d(frame->height, frame->linesize[0]); // frame->width ?
unsigned
nr = frame->height,
nc = frame->width;
@@@ -264,9 -266,10 +265,9 @@@
buffer_ = static_cast<V*>((void *)frame->data[0]);
V* buf = static_cast<V*>((void *)frame->data[0]);
for (unsigned i = 0; i < nr; ++i)
-
{
array_[i] = buf;
- buf += frame->linesize;
- buf = frame->linesize;
++ buf += frame->linesize[0];
}
}
@@@ -458,14 -461,14 +459,24 @@@
mln_precondition(this->is_valid());
return this->data_->buffer_;
}
+
+ template <typename V>
+ inline
+ int
+ image2d_ffmpeg<V>::delta_offset(const dpoint2d& dp) const
+ {
+ mln_precondition(this->is_valid());
- int o = dp[0] * this->data_->frame->linesize + dp[1];
++ int o = dp[0] * this->data_->frame->linesize[0] + dp[1];
++ return o;
++ }
+
+ template <typename V>
+ inline
+ int
+ image2d_ffmpeg<V>::delta_offset(const dpoint2d& dp) const
+ {
+ mln_precondition(this->is_valid());
- int o = dp[0] * this->data_->frame->linesize + dp[1];
++ int o = dp[0] * this->data_->frame->linesize[0] + dp[1];
return o;
}
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0