Voici une classe présentant un ensemble de filtres dit de convolutions (on applique une matrice à chaque pixel de l'image).
Voici un exemple de matrice que l'on peut appliquer au pixel
-1 | -2 | -1
-2 | 16 | -2
-1 | -2 | -1
afin de réhausser la netteté de l'image.
Cette source se caractérise par l'emploi de quelques tableaux non affectés au tas managé, mais se situant dans la zone mémoire réservée à la méthode, ce qui donne de la rapidité dans les traitements. L'instruction "stackalloc" est employée à cet effet. Dans les boucles, j'ai essayé d'économiser des instructions IL afin de gagner du temps processeur.
Vous pouvez créer vos propres filtres en créant vos matrices 3x3 ou 5x5 ou plus avec les coefficients souhaités. Le terme facteur est en général la somme des coefficients. Un offset peut être appliqué à l'ensemble.