← Mes projets

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.

Original
Résultat

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.

Rouge

0255

Vert

0255

Bleu

0255

Luminosité (moyenne)

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.

OctetsChampValeur

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