TP1: Colorisation de l'empire Russe

1. Description du projet

L'objectif principal de ce travail était de générer une image RGB à partir de trois photos prises avec un filtre de couleur. Chacune des photos est tirées de la collection Prokudin-Gorskii. Nous avions 2 types d'images : une série de jpg, peux volumineux, ainsi qu'une série de tiff, images très volumineuses.
Pour ce faire, j'ai transformé les images en une matrice de doubles. J'ai ensuite prélevé un échantillon au centre de l'image. La position des images les unes par rapport aux autres à été déterminé par une mesure de corrélation croisée normalisée (CCN). Une fois les images alignées, il suffit de les combinés pour qu'elles forment une seule et même image RGB.
Pour les images à hautes résolution, j'ai procédé avec une pyramide d'image. L'image entrante ést réduite par un facteur de 2, jusqu'à ce que l'image obtenue soit plus petite qu'une certaine limite. L'image ainsi obtenue est envoyé à l'algorithme pour les images à basse résolution. Le meilleur déplacement calculé est appliqué 2 fois à l'image 2 fois plus grande, et on ajuste en calculant un nouveau déplacement sur une plus petite plage, grâce à notre algorithme de départ. J'ai procédé ainsi de manière récursive jusqu'à l'obtention d'un déplacement pour l'image la plus grande.

2. Images à basse résolution

Green Offset : x = 4, y = 1
Red Offset : x = 9, y = -1

Green Offset : x = 2, y = 3
Red Offset : x = 5, y = 5

Green Offset : x = 6, y = 1
Red Offset : x = 12, y = 0

Green Offset : x = 1, y = 2
Red Offset : x = 4, y = 3

Green Offset : x = 2, y = 0
Red Offset : x = 6, y = 0

Green Offset : x = 1, y = -1
Red Offset : x = 13, y = -1

Green Offset : x = 1, y = 1
Red Offset : x = 4, y = 2

Green Offset : x = 5, y = 1
Red Offset : x = 11, y = 1

Green Offset : x = 6, y = 2
Red Offset : x = 14, y = 4

3. Images à haute résolution

Green Offset : x = 36, y = 20
Red Offset : x = 87, y = 38

Green Offset : x = 51, y = 51
Red Offset : x = 110, y = 67

Green Offset : x = 34, y = 25
Red Offset : x = 52, y = 38

Green Offset : x = 42, y = 6
Red Offset : x = 85, y = 32

Green Offset : x = 14, y = 5
Red Offset : x = 48, y = 13

Green Offset : x = 56, y = 25
Red Offset : x = 124, y = 34

Green Offset : x = 16, y = 6
Red Offset : x = 42, y = 6

Green Offset : x = -14, y = 10
Red Offset : x = 12, y = 20

Green Offset : x = 24, y = 20
Red Offset : x = 71, y = 34

4. Images additionelles

Green Offset : x = 4, y = 0
Red Offset : x = 10, y = -1

Green Offset : x = 3, y = 2
Red Offset : x = 10, y = 2

Green Offset : x = 2, y = 1
Red Offset : x = 6, y = 3

Green Offset : x = 3, y = 1
Red Offset : x = 8, y = 4

Green Offset : x = 4, y = 1
Red Offset : x = 10, y = 1

Green Offset : x = 21, y = 36
Red Offset : x = 67, y = 50

Green Offset : x = 38, y = 16
Red Offset : x = 92, y = 24

Green Offset : x = 46, y = 3
Red Offset : x = 101, y = 0

Green Offset : x = 40, y = 12
Red Offset : x = 84, y = 22

Green Offset : x = 44, y = -6
Red Offset : x = 98, y = -20

5. Photos personelles

Avec mes propres photos, l'algorithme n'a pas bien fonctionné. Je présente ici 3 exemples de fonctionnement. Dans la première image, l'algorithme n'a pas réussit à aligner les photos correctement. J'attribue cet échec à un taux trop élevé de blanc dans l'échantillon prélevé pour le CCN. La seconde photo montre ce qui ce passe lorsqu'une couleur (rouge sur cet exemple) prédomine sur les autres. Finalement, la dernière photo montre un exemple qui a fonctionné.

Green Offset : x = -2, y = 0
Red Offset : x = -8, y = 0

Green Offset : x = 4, y = 5
Red Offset : x = -40, y = 1

Green Offset : x = 0, y = 2
Red Offset : x = 0, y = 0

6. Essaies additionnaux

Afin d'éviter les erreurs dues à la prédominance d'une couleur dans une photo, j'ai essayé de passer l'image dans un filtre de canny avant de l'envoyer à l'algorithme. Les résultats sont très concluants et sont montrés sur les photos suivantes. On y voit une nette amélioration à côté des photos de la section précédante.

Green Offset : x = -1, y = -4
Red Offset : x = 0, y = 13

Green Offset : x = 4, y = 5
Red Offset : x = 3, y = 1