TP1: Colorisation de l'Empire Russe

Par Bernard Lebel

Mise en contexte

Le but de ce travail est de reconstituer des photos couleurs à partir de plaques noires et blanches ayant été prises à l'aide de filtres bleu vert et rouge.

Pour ce faire, les photos ont subi un prétraitement afin d'atténuer le bruit contenu dans les images à l'aide d'un filtre gaussien, puis traiter à l'aide d'un filtre Laplacien permettant d'extraire les contours des différents niveaux de couleurs afin de maximiser l'information utile contenue dans l'image. Lorsque l'image était de très haute résolution, une approche par pyramide d'images a été employée. Dans tous les cas, les couches de bleu et de vert ont été déplacé sur la couche rouge pour trouvé le déplacement optimal. Aussi, seul une portion centrale de la photo a été utilisée pour effectuer la comparaison entre les couches afin d'éviter les zones avec beaucoup d'imperfections le long des contours de la photo.

Dans un premier temps, les images basses résolution reconstitués seront présentées. Dans un second temps, les images hautes résolutions reconstituées seront présentées. Dans un troisième temps, 10 autres images de la librairie seront présentées. Ensuite, un essai sera fait sur 9 photos (3 de chaque prises de vue pour le rouge, bleu et vert) pris avec un appareil moderne. Finalement, des tentatives de retouches seront présentés à la dernière section du rapport.

Il est à noter que le fichier iPython Notebook utilisé ainsi que les images utilisées sont disponibles sur Google Drive suivant ce lien

1- Images basse résolution

Les images basses résolutions reconstitués automatiquement par l'algorithme sont présentées ci-dessous.

2- Images haute résolution

Cette section rapport les résultats obtenus à l'aide de l'algorithme implanté pour les images en haute définition. Les pleines images sont disponibles ici.

3- Autres images de la banque d'image

a) Basses résolutions

b) Hautes résolution

Les pleines images sont disponibles ici.

4- Images personnelles

Les essais suivant sont ceux obtenus à l'aide de photos prises avec un appareil moderne. L'ensemble des images obtenues sont incluses ici.

5- Exemples de retouches

a) Retrait des bordures

L'algorithme utilisée pour le retrait des bordures suit les étapes suivantes.

  1. Appliqué un filtre Gaussien-Laplacien pour retirer le bruit des images et utiliser les contours pour faciliter la récupération des bordures

  2. Les colonnes et les rangées sont sommées séparément.

  3. Pour les colonnes et les rangées. Par désir de simplicité, le mot colonne sera utilisé, mais les rangées subissent le même traitement.

\[ diffVector = |(SumColumn_{red} - SumColumn_{blue})| + |(SumColumn_{red} - SumColumn_{green})|/2 \]

Les résultats obtenus sont présentés ci-dessous.

Les résultats suivants ont été obtenus sur des images en hautes résolutions et ont subi la même transformation. Ces images sont téléchargeables ici.

b) Correction des couleurs

L'algorithme utilisée suit les directives disponibles sur la page Wikipédia, (Scaling Monitor RGB) . L'algorithme a été utilisé sur des images basses et hautes résolution. Le faible succès provient probablement de la normalisation qui est effectué avant d'aligner les images lors de la première étape qui postule que la valeur la plus grande du pixel dans l'image correspond au maximum possible pour le format de l'image. Or, il se peut que la valeur du pixel soit inférieur à la valeur maximale permise par le format(exemple, tous les pixels sont normalisés par rapport à 230 alors que le format jpg peut aller jusqu'à 255), ce qui nuit à la balance des couleurs qui demande d'utiliser la valeur maximale possible associée au blanc d'une image.

Test avec 2 images hautes résolutions. Les pleins résultats sont disponibles ici.