Practical Genericity: Writing Image Processing Algorithms Both Reusable and Efficient

  • Roland Levillain
  • Thierry Géraud
  • Laurent Najman
  • Edwin Carlinet
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8827)


An important topic for the image processing and pattern recognition community is the construction of open source and efficient libraries. An increasing number of software frameworks are said to be generic: they allow users to write reusable algorithms compatible with many input image types. However, this design choice is often made at the expense of performance. We present an approach to preserve efficiency in a generic image processing framework, by leveraging data types features. Variants of generic algorithms taking advantage of image types properties can be defined, offering an adjustable trade-off between genericity and efficiency. Our experiments show that these generic optimizations can match dedicated code in terms of execution times, and even sometimes perform better than routines optimized by hand.


Image Processing Software Reusability Computational Efficiency Generic Programming Reproducible Research 


  1. 1.
    Adobe: Generic Image Library (GIL),
  2. 2.
    Buckheit, J., Donoho, D.: WaveLab and reproducible research. Tech. Rep. 474, Stanford University, Stanford CA 94305, USA (1995)Google Scholar
  3. 3.
    Centre for Mathematical Morphology: Morph-M: Image processing software specialized in mathematical morphology,
  4. 4.
    Crozet, S., Géraud, T.: A first parallel algorithm to compute the morphological tree of shapes of nD images. In: Proceedings of the 21st IEEE International Conference on Image Processing, ICIP (2014)Google Scholar
  5. 5.
    Darbon, J., Géraud, T., Duret-Lutz, A.: Generic implementation of morphological image operators. In: Proceedings of the International Symposium on Mathematical Morphology (ISMM), pp. 175–184. Sciro Publishing (2002)Google Scholar
  6. 6.
    Dobie, M., Lewis, P.: Data structures for image processing in C. Pattern Recognition Letters 12(8), 457–466 (1991)CrossRefGoogle Scholar
  7. 7.
    Fabri, A., Giezeman, G.J., Kettner, L., Schirra, S., Schönherr, S.: On the design of CGAL a computational geometry algorithms library. Software - Practice and Experience 30(11), 1167–1202 (2000)CrossRefzbMATHGoogle Scholar
  8. 8.
    Fomel, S., Claerbout, J.: Guest editors’ introduction: Reproducible research. Computing in Science and Engineering 11(1), 5–7 (2009)CrossRefGoogle Scholar
  9. 9.
    Géraud, T., Carlinet, E., Crozet, S., Najman, L.: A quasi-linear algorithm to compute the tree of shapes of nD images. In: Hendriks, C.L.L., Borgefors, G., Strand, R. (eds.) ISMM 2013. LNCS, vol. 7883, pp. 98–110. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  10. 10.
    Géraud, T., Fabre, Y., Duret-Lutz, A., Papadopoulos-Orfanos, D., Mangin, J.F.: Obtaining genericity for image processing and pattern recognition algorithms. In: Proceedings of the 15th International Conference on Pattern Recognition (ICPR), vol. 4, pp. 816–819 (2000)Google Scholar
  11. 11.
    Géraud, T., Talbot, H., Van Droogenbroeck, M.: Algorithms for Mathematical Morphology. In: Mathematical Morphology—From Theory to Applications, ch. 12, pp. 323–353. ISTE & Wiley (2010)Google Scholar
  12. 12.
    Géraud, T., Fabre, Y., Duret-Lutz, A.: Applying generic programming to image processing. In: Proceedings of the IASTED International Conference on Applied Informatics (AI)—Symposium on Advances in Computer Applications, Innsbruck, Austria, pp. 577–581 (2001)Google Scholar
  13. 13.
    Ibáñez, L., Schroeder, W., Ng, L., Cates, J.: The ITK Software Guide. Kitware, Inc. (2005)Google Scholar
  14. 14.
    ISO/IEC: ISO/IEC 14882:2003 (e). Programming languages — C++ (2003)Google Scholar
  15. 15.
    Limare, N., Morel, J.-M.: The IPOL initiative: Publishing and testing algorithms on line for reproducible research in image processing. Procedia Computer Science 4, 716–725 (2011)CrossRefGoogle Scholar
  16. 16.
    Jazayeri, M., Loos, R., Musser, D., Stepanov, A.: Report of the Dagstuhl seminar (98061) on generic programming (April 1998),
  17. 17.
    Kohl, C., Mundy, J.: The development of the Image Understanding Environment. In: Proceedings of the International Conference on Computer Vision and Pattern Recognition, pp. 443–447 (1994)Google Scholar
  18. 18.
    Köthe, U.: Reusable software in computer vision. In: Jähne, B., Haussecker, H., Geißler, P. (eds.) Handbook of Computer Vision and Applications, vol. 3. Academic Press (1999)Google Scholar
  19. 19.
    Köthe, U.: STL-style generic programming with images. C++ Report 12(1), 24–30 (2000)Google Scholar
  20. 20.
    Levillain, R., Géraud, T., Najman, L.: Milena: Write generic morphological algorithms once, run on many kinds of images. In: Wilkinson, M.H.F., Roerdink, J.B.T.M. (eds.) ISMM 2009. LNCS, vol. 5720, pp. 295–306. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  21. 21.
    Levillain, R., Géraud, T., Najman, L.: Why and how to design a generic and efficient image processing framework: The case of the Milena library. In: Proceedings of the IEEE International Conference on Image Processing (ICIP), pp. 1941–1944 (2010)Google Scholar
  22. 22.
    Levillain, R., Géraud, T., Najman, L.: Writing reusable digital topology algorithms in a generic image processing framework. In: Köthe, U., Montanvert, A., Soille, P. (eds.) WADGMM 2010. LNCS, vol. 7346, pp. 140–153. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  23. 23.
    LRDE: The Olena image processing platform,
  24. 24.
    Ritter, G., Wilson, J., Davidson, J.: Image Algebra: an overview. Computer Vision, Graphics, and Image Processing 49(3), 297–331 (1990)CrossRefGoogle Scholar
  25. 25.
    Siek, J., Lee, L.Q., Lumsdaine, A.: The Boost Graph Library. Addison Wesley Professional (2001)Google Scholar
  26. 26.
    Xu, Y., Géraud, T., Najman, L.: Context-based energy estimator: Application to object segmentation on the tree of shapes. In: Proceedings of the 19th IEEE International Conference on Image Processing (ICIP), Orlando, Florida, USA, pp. 1577–1580 (October 2012)Google Scholar
  27. 27.
    Xu, Y., Géraud, T., Najman, L.: Salient level lines selection using the Mumford-Shah functional. In: Proceedings of the 20th IEEE International Conference on Image Processing, ICIP (2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Roland Levillain
    • 1
  • Thierry Géraud
    • 1
  • Laurent Najman
    • 2
  • Edwin Carlinet
    • 1
    • 2
  1. 1.EPITA Research and Development Laboratory (LRDE)Le Kremlin-BicêtreFrance
  2. 2.Laboratoire d’Informatique Gaspard-Monge, Équipe A3SI, ESIEE Paris, Cité DescartesUniversité Paris-EstNoisy-le-GrandFrance

Personalised recommendations