. Gandalf, http://gandalf-library.sourceforge.net

. Adobe, Generic Image Library (GIL)

A. Alexandrescu, The D Programming Language, 2010.

J. Angulo and J. Chanussot, Color and Multivariate Images, Mathematical Morphology?From Theory to Applications, chapter 11, 2010.
DOI : 10.1002/9781118600788.ch11

URL : https://hal.archives-ouvertes.fr/hal-00834942

R. R. Atkinson, B. H. Liskov, and R. W. Scheifler, Aspects Of Implementing CLU, Proceedings of the 1978 annual conference on , ACM 78, pp.123-129, 1978.
DOI : 10.1145/800127.804079

H. Matthew and . Austern, Generic Programming and the STL: Using and Extending the C++ Standard Template Library. Addison-Wesley professional computing series, 1999.

J. Barton and L. Nackman, Scientific and engineering C++, 1994.

M. David and . Beazley, SWIG: an easy to use tool for integrating scripting languages with C and C++, Proceedings of the 4th conference on USENIX Tcl, 1996.

G. Bertrand and M. Couprie, Transformations topologiques discrètes, Géométrie discrète et images numériques, pp.187-209, 2007.

S. Beucher and C. Lantuéjoul, Use of watersheds in contour detection, International Workshop on Image Processing: Real-time Edge and Motion Detection/Estimation, 1979.

A. Borghi, V. David, and A. Demaille, C-Transformers ? A framework to write C program transformations, ACM Crossroads, vol.12, issue.3, 2006.

M. Bosc, Contribution à la détection de changements dans des séquences IRM 3D multimodales, 2003.

G. Bradski and A. Kaehler, Learning OpenCV: Computer Vision with the OpenCV Library, 2008.

M. Bravenboer, K. T. Kalleberg, R. Vermaas, and E. Visser, Stratego/XT 0.17. A language and toolset for program transformation, Science of Computer Programming, vol.72, issue.1-2, pp.52-7010, 2008.
DOI : 10.1016/j.scico.2007.11.003

J. B. Buckheit and D. L. Donoho, WaveLab and Reproducible Research, 1995.
DOI : 10.1007/978-1-4612-2544-7_5

URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.2982

T. Budd, Multiparadigm programming in Leda, 1995.

W. Burger and M. J. Burg, Digital Image Processing: An Algorithmic Introduction using Java, 2008.
DOI : 10.1007/978-1-4471-6684-9

N. Burrus, A. Duret-lutz, T. Géraud, D. Lesage, and R. Poss, A static C++ objectoriented programming (SCOOP) paradigm mixing benefits of traditional OOP and generic programming, Proceedings of the Workshop on Multiple Paradigm with Object-Oriented Languages (MPOOL), 2003.

J. O. Coplien, Curiously recurring template patterns, 1996.

M. Couprie and G. Bertrand, New Characterizations of Simple Points in 2D, 3D, and 4D Discrete Spaces, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.31, issue.4, pp.637-648, 2009.
DOI : 10.1109/TPAMI.2008.117

URL : https://hal.archives-ouvertes.fr/hal-00622393

J. Cousty, G. Bertrand, M. Couprie, and L. Najman, Collapses and Watersheds in Pseudomanifolds, Proceedings of the 13th International Workshop on Combinatorial Image Analysis (IWCIA), IWCIA '09, pp.397-410
DOI : 10.1007/978-3-642-10210-3_31

URL : https://hal.archives-ouvertes.fr/hal-00622419

J. Cousty, G. Bertrand, L. Najman, and M. Couprie, Watershed Cuts: Minimum Spanning Forests and the Drop of Water Principle, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.31, issue.8, pp.311362-1374, 2009.
DOI : 10.1109/TPAMI.2008.173

URL : https://hal.archives-ouvertes.fr/hal-00622410

J. Cousty, L. Najman, and J. Serra, Some Morphological Operators in Graph Spaces, Proceedings of the Ninth International Symposium on Mathematical Morphology (ISMM), Lecture Notes in Computer Science Series, 2009.
DOI : 10.1016/j.patrec.2008.03.019

URL : https://hal.archives-ouvertes.fr/hal-00622403

K. Czarnecki, Generative Programming, 1998.
DOI : 10.1007/3-540-36208-8_2

URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.387.6297

K. Czarnecki and U. Eisenecker, Generative Programming, 2000.
DOI : 10.1007/3-540-36208-8_2

URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.387.6297

V. David, A. Demaille, and O. Gournet, Attribute grammars for modular disambiguation, Proceedings of the IEEE 2nd International Conference on Intelligent Computer Communication and Processing (ICCP'06), 2006.

M. Day, R. Gruber, B. Liskov, and A. C. Meyers, Subtypes vs. where clauses: Constraining parametric polymorphism, Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), SIGPLAN Notices, pp.156-168, 1995.
DOI : 10.1145/217839.217852

URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.130.8601

C. James, A. A. Dehnert, G. K. Stepanov-rüdiger, D. R. Loos, and . Musser, Fundamentals of generic programming, Mehdi Jazayeri, Selected Papers from the International Seminar on Generic Programming, pp.1-11, 1998.

F. Dias, J. Cousty, and L. Najman, Some Morphological Operators on Simplicial Complex Spaces, Proceedings of the 16th IAPR international conference on Discrete Geometry for Computer Imagery (DGCI), pp.441-452, 2011.
DOI : 10.1007/978-3-642-19867-0_37

URL : https://hal.archives-ouvertes.fr/hal-00730470

M. Cordeiro-d-'ornellas, Algorithmic Patterns for Morphological Image Processing, 2001.

A. Duret-lutz, Olena: a component-based platform for image processing, mixing generic, generative and OO programming, Proceedings of the 2nd International Symposium on Generative and Component-Based Software Engineering (GCSE)?Young Researchers Workshop; published in " Net.ObjectDays2000, pp.653-659, 2000.

A. Duret-lutz, T. Géraud, and A. Demaille, Generic design patterns in C++, Proceedings of the 6th USENIX Conference on Object-Oriented Technologies and Systems (COOTS), pp.189-202, 2001.

J. W. Eaton, GNU Octave Manual, Network Theory, 2002.

A. Margaret, B. Ellis, and . Stroustrup, The Annotated C++ Reference Manual, 1990.

E. Engineering, Pink image processing library

J. Lachaud, ImaGene, generic digital image library

U. Köthe, VIGRA ? vision with generic algorithms

A. Fabri, L. Geert-jan-giezeman, S. Kettner, S. Schirra, and . Schönherr, On the design of CGAL a computational geometry algorithms library. Software - Practice and Experience, pp.1167-1202, 2000.

S. Fomel and J. F. Claerbout, Guest Editors' Introduction: Reproducible Research, Computing in Science & Engineering, vol.11, issue.1, pp.5-7, 2009.
DOI : 10.1109/MCSE.2009.14

M. Centre and . Morphology, Morph-M: Image processing software specialized in mathematical morphology

M. Frigo and S. G. Johnson, The Design and Implementation of FFTW3, Proceedings of the IEEE, vol.93, issue.2, pp.216-231, 2005.
DOI : 10.1109/JPROC.2004.840301

J. Froment, MegaWave2 user's guide, 2004.

E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, 1995.

R. Garcia, J. Järvi, A. Lumsdaine, J. Siek, and J. Willcock, An extended comparative study of language support for generic programming, Journal of Functional Programming, vol.17, issue.02, pp.145-205, 2007.
DOI : 10.1017/S0956796806006198

T. Géraud and A. Duret-lutz, Generic programming redesign of patterns, Proceedings of the 5th European Conference on Pattern Languages of Programs (EuroPLoP ), pp.283-294, 2000.

T. Géraud and R. Levillain, Semantics-driven genericity: A sequel to the static C++ object-oriented programming paradigm, Proceedings of the 6th International Workshop on Multiparadigm Programming with Object-Oriented Languages (MPOOL), 2008.

T. Géraud, Y. Fabre, A. Duret-lutz, D. Papadopoulos-orfanos, and J. Mangin, Obtaining genericity for image processing and pattern recognition algorithms, Proceedings of the 15th International Conference on Pattern Recognition (ICPR), pp.816-819, 2000.

J. Gosling, B. Joy, G. Steele, and G. Bracha, The Java? Language Specification, 2005.

M. Graphics, VSIPL++ specification 1.1. http:// s3.mentor.com/embedded/vsipl-specification.pdf, 2011.

D. Gregor, J. Järvi, M. Kulkarni, A. Lumsdaine, D. Musser et al., Generic Programming and High-Performance Libraries, International Journal of Parallel Programming, vol.44, issue.13, pp.145-164, 2005.
DOI : 10.1007/s10766-005-3580-8

D. Gregor, B. Stroustrup, J. Widman, and J. Siek, Proposed wording for concepts (revision 9), 2008.

G. Group, GraphicsMagick image processing system

K. Opencl and W. Group, The OpenCL specification , version 1.2, 2011.

B. Guenter and D. Nehab, Neon: A domain-specific programming language for image processing, 2010.

G. C. Leonard and . Hamey, Efficient image processing with the Apply language, Proceedings of the International Conference on Digital Image Computing: Techniques and Applications (DICTA), pp.533-540, 2007.

L. Ibáñez, W. Schroeder, and L. Ng, Josh Cates, and the Insight Software Consortium. The ITK Software Guide, 2005.

. Intel, Intel Threading Building Blocks reference man- ual, 2011.

E. International, Standard ECMA-334 ? C# language specification, 2006.

I. , I. Iso, and . Iec, (E) Programming languages ? C++, p.1998, 1998.

I. , I. Iso, and . Iec, (E) Programming languages ? C, p.1999, 1999.

I. Iso, (E) Programming languages ? C++, p.2003, 2003.

I. Iec, Ada reference manual(E), with technical corrigendum 1 and amendment 1 ? language and standard libraries, (E). Information technology ? Programming languages ? C#, p.19952006, 2005.

I. , I. Iso, and . Iec, (E) Information technology ? Eiffel: Analysis, design and programming language, p.2006, 2006.

I. Iso, (E) Information technology ? Programming languages ? Fortran ? part 1: Base language, 1539.

I. , I. Iso, and . Iec, (E) Programming languages ? C, p.2011, 2011.

I. , I. Iso, and . Iec, (E) Programming languages ? C++, p.2011, 2011.

M. Jazayeri, R. Loos, D. Musser, and A. Stepanov, Report of the Dagstuhl seminar (98061) on generic programming, 1998.

S. Karmesin, J. Crotinger, J. Cummings, S. Haney, W. J. Humphrey et al., Array Design and Expression Evaluation in POOMA II, Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments (ISCOPE), number 1505 in Lecture Notes in Computer Science, pp.231-238, 1998.
DOI : 10.1007/3-540-49372-7_25

R. Klarer, J. Maddock, B. Dawes, and H. Hinnant, Proposal to add static assertions to the core language (revision 3), JTC1/SC22/WG21 ? The C++ Standards Committee, 2004.

U. Köthe, Reusable software in computer vision, Handbook of Computer Vision and Applications, pp.103-132, 1999.

C. Lattner and V. Adve, LLVM: A compilation framework for lifelong program analysis & transformation, International Symposium on Code Generation and Optimization, 2004. CGO 2004., 2004.
DOI : 10.1109/CGO.2004.1281665

G. Lazzara, R. Levillain, T. Géraud, Y. Jacquelet, J. Marquegnies et al., The SCRIBO Module of the Olena Platform: A Free Software Framework for Document Image Analysis, 2011 International Conference on Document Analysis and Recognition, 2011.
DOI : 10.1109/ICDAR.2011.59

R. Levillain, T. Géraud, and L. Najman, Milena: Write Generic Morphological Algorithms Once, Run on Many Kinds of Images, Mathematical Morphology and Its Application to Signal and Image Processing ? Proceedings of the Ninth International Symposium on Mathematical Morphology (ISMM), pp.295-306, 2009.
DOI : 10.1007/978-3-540-79126-3_39

URL : https://hal.archives-ouvertes.fr/hal-00622404

R. Levillain, T. Géraud, and L. Najman, Why and how to design a generic and efficient image processing framework: The case of the Milena library, Proceedings of the IEEE International Conference on Image Processing (ICIP), pp.1941-1944, 2010.
URL : https://hal.archives-ouvertes.fr/hal-00622480

R. Levillain, T. Géraud, and L. Najman, Writing reusable digital geometry algorithms in a generic image processing framework, Proceedings of the Workshop on Applications of Digital Geometry and Mathematical Morphology (WADGMM), pp.96-100, 2010.
URL : https://hal.archives-ouvertes.fr/hal-00733264

R. Levillain, T. Géraud, and L. Najman, Une approche générique du logiciel pour le traitement d'images préservant les performances, Proceedings of the 23rd Symposium on Signal and Image Processing (GRETSI), 2011.

B. Liskov, A. Snyder, R. Atkinson, and J. C. Schaffert, Abstraction mechanisms in CLU, Communications of the ACM, vol.20, issue.8, pp.564-576, 1977.
DOI : 10.1145/359763.359789

L. Research and D. Laboratory, Transformers home page, 2005.

B. Mcnamara and Y. Smaragdakis, Static interfaces in C++, First Workshop on C++ Template Programming, 2000.

B. Meyer, Genericity versus inheritance, Proceedings of the Conference on Object Oriented Programming Systems Languages and Aplications (OOPSLA), pp.391-405, 1986.
DOI : 10.1145/960112.28738

URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.155.3489

F. Meyer, Un algorithme optimal de ligne de partage des eaux, Actes du 8e Congrès AFCET, pp.847-857, 1991.

S. Meyers, More Effective C++, 1996.

S. Meyers, How non-member functions improve encapsulation, C/C++ Users Journal, vol.18, issue.2, p.44, 2000.

R. David, A. A. Musser, and . Stepanov, Generic programming, Symbolic and Algebraic Computation (Proceedings of ISSAC'88), pp.13-25, 1989.

R. David, A. A. Musser, and . Stepanov, Algorithmoriented generic libraries. Software -Practice and Experience, pp.623-642, 1994.

D. R. Musser, G. J. Derge, and A. Saini, STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library. Addison-Wesley professional computing series, 2001.

N. Myers, A new and useful template technique: " traits, C++ Gems, pp.451-457, 1996.

C. Nathan and . Myers, Traits: a new and useful template technique, C++ Report, vol.7, issue.5, pp.32-35, 1995.

K. John, K. Ousterhout, and . Jones, Tcl and the Tk Toolkit, 2009.

P. J. Plauger, M. Lee, D. Musser, and A. A. Stepanov, The C++ Standard Template Library, 2000.

J. Reinders, Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism. O'Reilly Media, 2007.

G. X. Ritter, J. N. Wilson, and J. L. Davidson, Image Algebra, pp.297-3310734, 1990.
DOI : 10.1201/9781420042382.ch1

G. Van and R. , The Python Language Reference Manual, Network Theory, 2003.

S. Rusinkiewicz, Estimating curvatures and their derivatives on triangle meshes, Proceedings. 2nd International Symposium on 3D Data Processing, Visualization and Transmission, 2004. 3DPVT 2004., pp.486-49354, 2004.
DOI : 10.1109/TDPVT.2004.1335277

URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.1.2947

R. Graziano-lo, An interview with A. Stepanov

A. Scuri, ImLab 2.3 ? a free experimental system for image processing

. Sgi, Standard template library programmer's guide

J. Siek and A. Lumsdaine, The Boost Concept Check Library (BCCL), 2000.

J. Siek and A. Lumsdaine, Concept checking: Binding parametric polymorphism in C++, Proceedings of the First Workshop on C++ Template Programming, 2000.

J. G. Siek, A Modern Framework for Portable High-Performance Numerical Linear Algebra, 1999.
DOI : 10.1007/978-3-642-57172-5_1

J. G. Siek and A. Lumsdaine, The Matrix Template Library: A Generic Programming Approach to High Performance Numerical Linear Algebra, Proceedings of the Second International Symposium on Computing in Object- Oriented Parallel Environments (ISCOPE), number 1505 in Lecture Notes in Computer Science, pp.59-70, 1998.
DOI : 10.1145/42288.42292

A. Stepanov and M. Lee, The standard template library, 1995.

M. Still, The Definitive Guide to ImageMagick. Definitive Guides, Apress, 2005.

B. Stroustrup, Parameterized types for C++, Proceedings of the USENIX C++ Conference, 1988.

B. Stroustrup, The Design and Evolution of C++, 1994.

B. Stroustrup, A rationale for semantically enhanced library languages, Proceedings of the Workshop on Library- Centric Software Design (LCSD), 2005.

B. Stroustrup, Evolving a language in and for the real world, Proceedings of the third ACM SIGPLAN conference on History of programming languages , HOPL III, pp.4-5, 2007.
DOI : 10.1145/1238844.1238848

B. Stroustrup, Simplifying the use of concepts, 2009.

H. Sutter, Sutter's mill: Virtuality, C/C++ Users Journal, vol.19, issue.9, 2001.

D. Tschumperlé, The CImg library

E. Unruh, Prime number computation, 1994.

D. Vandevoorde and N. M. Josuttis, C++ Templates: The Complete Guide, 2003.

T. Veldhuizen, Using C++ template metaprograms, C++ Gems, pp.459-473, 1996.

T. Veldhuizen, Expression templates, C++ Gems, pp.475-487, 1996.

L. Todd and . Veldhuizen, Who invented. . . [template metaprogramming

L. Todd and . Veldhuizen, Using C++ template metaprograms, C++ Report, vol.7, issue.4, pp.36-43, 1995.

L. Todd and . Veldhuizen, Expression templates, C++ Report, vol.7, issue.5, pp.26-31, 1995.

L. Todd and . Veldhuizen, Arrays in Blitz++, Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments (ISCOPE'98), pp.223-230, 1998.

L. Todd and . Veldhuizen, Techniques for scientific C++, 1999.

L. Todd and . Veldhuizen, C++ templates are Turing complete, 2003.

L. Todd, G. Veldhuizen, and . Dennis, Active libraries: Rethinking the roles of compilers and libraries, Proceedings of the SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing, 1998.

L. Todd, M. E. Veldhuizen, and . Jernigan, Will C++ be faster than Fortran?, Proceedings of the 1st International Conference on Scientific Computing in Object-Oriented Parallel Environments (ISCOPE'97, 1997.

L. Vincent, Graphs and mathematical morphology, Signal Processing, vol.16, issue.4, pp.365-388, 1989.
DOI : 10.1016/0165-1684(89)90031-5