Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

IMAGES : FILTRES PAR CONVOLUTION


Information sur la source

Catégorie :Graphique Source .NET ( DotNet ) Classé sous : image, bitmap, unsafe, stackalloc, filtres Niveau : Débutant Date de création : 03/11/2006 Date de mise à jour : 04/11/2006 11:25:36 Vu / téléchargé: 11 313 / 678

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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.
 

Conclusion

Le fonctionnement est simple :

Filtres.Relief(maBitmap);

on reprend la référence de maBitmap qui a été traitée. Attention, à ne passer que des images au format 32Arbg.
Si celle-ci n'est pas au format 32Argb, vous pouvez en général en créer une à ce format par :
Bitmap image32 = new Bitmap(maBitmap);
Filtres.Accentuation(image32);

Dernière précision importante, la transparence est conservée !

Remerciement :
Je tiens à remercier Brunews (Bruno Nati) pour les conseils d'optimisation qu'il promulgue un peu partout dans les communautés.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

04 novembre 2006 11:25:36 :
Ajout d'un visuel :)

Commentaires et avis

signaler à un administrateur
Commentaire de sebmafate le 03/11/2006 18:45:19 administrateur CS

Génial... t'aurais pas une image voir ce que ca fait ?

signaler à un administrateur
Commentaire de t_barbillon le 26/12/2006 12:43:10

Excellent

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

dessiner un graphics sur une image contenue dans une pictureBox [ par godefrw ] Bonjour, je cherche à afficher un objet Graphics (sur lequel j'ai dessiner des formes rectangles, rond etc) par dessus une image. Mon image est conte pb d'affichage avec directx / c# [ par amorosalain ] SAMJ'essaye d'afficher une image par dessus mon espace 3D. J'utilise donc des PositionNormalTextured pour mon environnement 3D et je voulais utiliser Bitmap: colorisation de pixels...Help! [ par Zekez ] Bonjour,Voilà, j'ai un petit problème de colorisation d'une Bitmap... Je dois effectuer un remplissage de couleur (comme dans Paint) et je d declarer une image, comment??? [ par Fildomen ] salutje veux faire :Image im = new Image();et ca marche po :-[vous pouvez me dire comment declarer une nouvelle image?mercisinon, comment utiliser l Bitmap à partir d'une fenêtre... Help! [ par Zekez ] Bonjour,je suis en train de faire une application en C# dans laquelle j'ai besoin d'insérer une sorte de printscreen d'une fenêtre dans une class Bitmap obscur [ par sebseb42 ] Salut a tous, j'ai un truc plutot bizarre, je cherche a compresser des images a la voler sans passer par le disque-dur.je fait ceci :public Truc(Bitma Déclaration de bitmap [ par mael45 ] Bonjour Je fais un travail pour l'école et là je suis complétement bloqué.Je dois pouvoir dessiner à chaque clic de souris su Double buffering et lenteur d'affichage [ par takamura ] Bonjour j'essaye de  réaliser un logiciel tout bête qui affiche la map d'un jeu.je souhaite que l'on puisse zoomer /dezoomer sur cette Conversion d'un Bitmap en Tableau a 2 dimension [ par astragoth66 ] Bonjour, j'aimerai savoir s'il est possible de convertir une image Bitmap, en un tableau à 2 dimension. pouvoir regarder les pixels de mon image Impossible de visualiser un bitmap sous Photoshop ou IE... [ par robbielove ] Bonjour,Je cherche à transformer les couleurs d'une image. Pour cela je crée un bitamp aux dimensions de l'image origianle, je remplis le bi


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.