An Image Processing Library in Modern C++: Getting Simplicity and Efficiency with Generic Programming
From LRDE
- Authors
- Michaël Roynard, Edwin Carlinet, Thierry Géraud
- Where
- Proceedings of the 2nd Workshop on Reproducible Research in Pattern Recognition (RRPR 2018)
- Type
- inproceedings
- Projects
- Olena
- Keywords
- Image
- Date
- 2018-10-25
Abstract
As there are as many clients as many usages of an Image Processing library, each one may expect different services from it. Some clients may look for efficient and production-quality algorithms, some may look for a large tool set, while others may look for extensibility and genericity to inter-operate with their own code base... but in most cases, they want a simple-to-use and stable product. For a C++ Image Processing library designer, it is difficult to conciliate genericity, efficiency and simplicity at the same time. Modern C++ (post 2011) brings new features for library developers that will help designing a software solution combining those three points. In this paper, we develop a method using these facilities to abstract the library components and augment the genericity of the algorithms. Furthermore, this method is not specific to image processing; it can be applied to any C++ scientific library.
Documents
Bibtex (lrde.bib)
@InProceedings{ roynard.18.rrpr, title = {An Image Processing Library in Modern {C++}: Getting Simplicity and Efficiency with Generic Programming}, author = {Micha\"el Roynard and Edwin Carlinet and Thierry G\'eraud}, booktitle = {Proceedings of the 2nd Workshop on Reproducible Research in Pattern Recognition (RRPR 2018)}, volume = {11455}, series = {Lecture Notes in Computer Science}, pages = {121--137}, year = {2019}, doi = {10.1007/978-3-030-23987-9_12}, abstract = {As there are as many clients as many usages of an Image Processing library, each one may expect different services from it. Some clients may look for efficient and production-quality algorithms, some may look for a large tool set, while others may look for extensibility and genericity to inter-operate with their own code base... but in most cases, they want a simple-to-use and stable product. For a C++ Image Processing library designer, it is difficult to conciliate genericity, efficiency and simplicity at the same time. Modern C++ (post 2011) brings new features for library developers that will help designing a software solution combining those three points. In this paper, we develop a method using these facilities to abstract the library components and augment the genericity of the algorithms. Furthermore, this method is not specific to image processing; it can be applied to any C++ scientific library.} }