Généricité dynamique pour des algorithmes morphologiques

Abstract

La généricité est un paradigme puissant dont l’usage permet d’implémenter un unique algorithme et de l’exécuter sur différents types de données. De ce fait, il est très utilisé lors du développement d’une bibliothèque scientifique, notamment en traitement d’images où les algorithmes peuvent s’appliquer à différents types d’images. Le langage C++ est un langage de choix pour ce genre de bibliothèque. Il supporte ce paradigme et ses applications sont performantes compte tenu de sa nature compilée. Néanmoins, contrairement à des langages dynamiques tels que Python ou Julia, ses capacités en matière d’interactivité, utiles lors des étapes de prototypage d’algorithmes, sont limitées en raison de sa nature statique. Nous proposons donc dans cet article une revue des différentes techniques qui permettent d’utiliser à la fois le polymorphisme statique et dynamique, puis nous évaluons le coût du transfert d’information statique vers des informations connues à l’exécution. En particulier, nous montrons que certaines informations d’une image sont plus importantes que d’autres en matière de performance, et que le surcoût dépend aussi de l’algorithme utilisé.