Projet académique · ESILV · 2022
Traitement d'image
Le même projet de deuxième année que le générateur de QR code : une application C# qui ouvre une image BMP octet par octet, la transforme, puis réécrit le fichier. Les mêmes traitements tournent ici dans votre navigateur, sur Maxou ou sur votre propre photo.
Portage web réalisé avec une assistance d'IA, à partir de mon code C# d'origine.
Atelier
Votre image reste sur votre appareil : rien n'est envoyé. Au-delà de 800 pixels de côté, elle est réduite pour garder les calculs rapides.
Couleurs
Saisons
Convolution
Géométrie
Noyau de convolution
Chaque pixel devient la somme de ses 8 voisins et de lui-même, pondérés par ce noyau, divisée par le diviseur. Les boutons « Convolution » le remplissent ; modifiez-le librement.
Stéganographie
Cache une image dans les 4 bits de poids faible de chaque couleur. L'écart ne dépasse jamais 15 niveaux sur 255 : invisible à l'œil.
Histogramme du résultat
Combien de pixels prennent chaque valeur, de 0 (noir) à 255, canal par canal. Survolez un graphique pour lire une valeur.
0255
0255
0255
0255
Dans le fichier BMP
Le projet lisait et écrivait le format BMP à la main, sans bibliothèque. Voici les 54 premiers octets du fichier que produirait le bouton « Télécharger », pour l'image actuelle.
| Octets | Champ | Valeur |
|---|
Fractale de Mandelbrot
Pour chaque pixel, vu comme un nombre complexe c, on répète z ← z² + c en partant de 0. Si z reste borné, le point appartient à l'ensemble (en noir) ; sinon, la couleur dit en combien d'étapes il s'échappe. Cliquez pour zoomer.
L'original en faisait 40, sur une image de 3840 × 2160 pixels. Plus on zoome, plus il en faut pour voir les détails.
Du C# au navigateur
Le projet d'origine
- Application Windows Forms en C#
- Lecture et écriture des BMP 24 bits octet par octet : en-tête petit-boutiste, lignes de bas en haut, complétées à un multiple de 4
- Filtres, rotation, redimensionnement, convolution, histogramme, stéganographie, fractale
Ce qui ne change pas
- Mêmes noyaux de convolution et même bord circulaire
- Mêmes coefficients pour les filtres « saisons »
- Même principe de stéganographie : 4 bits forts visibles, 4 bits faibles cachés
Ce que le portage ajoute
- N'importe quel format d'image en entrée ; le BMP est toujours lu et écrit à la main
- Noyau de convolution modifiable, annulation, histogramme interactif
- Fractale explorable au zoom