TP1: Colorisation de l'empire russe

Projet

En 1907, le photographe russe Sergei Mikhailovich Prokudin-Gorskii obtint la permission du tsar de l'époque de parcourir la Russie afin de prendre des photographies couleur de ce qu'il voyait. Puisque la photographie couleur n'existait pas à l'époque, il eut l'ingénieuse idée de prendre trois photographies différentes de chaque scène, une avec un filtre rouge, une avec un filtre bleu, et une avec un filtre vert.
Le projet consiste à combiner ensemble ces trois images noir et blanc afin d'obtenir une image couleur. Il s'agit donc de trouver un algorithme qui permette de superposer les trois images en les appariant.

Approche

Théoriquement, les 3 images doivent contenir les mêmes détails. En minimisant la différence d'intensité des images deux-à-deux, on devrait obtenir une image où les zones d'ombre sont superposées entre elles. L'algorithme consiste donc à minimiser la somme du carré des différences d'intensité des images deux à deux en débutant avec les images superposées sans décalage. Pour réduire la taille des calculs, cette étape est faite en diminuant la taille des images haute définition par 8 fois et celle des images de plus petite taille pr 2 fois.

Préfiltrage

Les 3 images ne contiennent pas exactement les mêmes valeurs de luminance. Par exemple, le bruit est différents dans les trois images. Pour éliminer ce bruit, un filtre médian est appliqué sur les images. Ce filtre est de 3 x 3 pour les images basse définition et de 13 x 13 pour les images haute définition. Avec cette opération simple, la superposition fonctionne relativement bien pour la plupart des images. Une partie des images donne cependant des résultats moins intéressants (particulièrement les images 822 et 1043). Les images suivantes sont les résultats de l'algorithme appliqué sur les images haute définition.

Tests sur les images fournies

result-00029u.jpg

result-00087u.jpg

result-00128u.jpg

result-00458u.jpg

result-00822u.jpg

result-00892u.jpg

result-01043u.jpg

result-01047u.jpg

Pour les images en basse définition, en plus de l'élimination du bruit, l'algorithme utilise un filtre de Sobel vertical et vertical afin de générer une image qui contient les bordures des objets. Cela permet d'éliminer les différences d'illumination entre les images prises avec les différents filtres. Un seuil déteminé empiriquement permet d'éliminer le bruit généré dans certaines images par cette opération. Cet algorithme donne de moins bons résultats sur les images en haute définition car il génère plus de bruit que dans les images en basse définition. Les images suivantes montrent le résultat de l'algorithme décrit plus haut sur les images en basse définition.

result-00106.jpg

result-00757.jpg

result-00888.jpg

result-00889.jpg

result-00907.jpg

result-00911.jpg

result-01031.jpg

result-01657.jpg

result-01880.jpg

Tests sur des images supplémentaires

Trois autres images basse définition ont été sélectionnées dans la banque d'images disponibles:

result-00006.jpg

result-00009.jpg

result-00011.jpg

On peut constater que le résultat n'est pas très intéressant sur l'image 00006v. En examinant les résultats des filtres de Sobel, on réalise que pour ces images, les résultats varient beaucoup, ce qui explique que la superposition est moins efficace.

L'algorithme pour les images haute définition a également été testé sur 3 images suplémentaires provenant de la banque d'image:

result-00097.jpg

result-00398.jpg

result-00500.jpg

Discussion

Les déplacements calculés apparaissent plus bas. L'algorithme utilisé pour les images haute définition donne des performances satisfaisantes pour la plupart des images. Les cas où il performe moins bien sont ceux où il y a des variations importante en luminance dans les trois couleurs. L'algorithme appliqué sur les images basse définition est assez performant et permet de bien superposer les image où les niveaux d'illuminance dans les différentes images est très différent. Il arrive cependant qu'il performe moins bien quand la détection des bordures par les filtres de Sobel est moins efficace, comme dans l'image 00006. Plusieurs essais on été faits pour implémenter l'algorithme utilisant les filtres de Sobel. Malheureusement dans tous les cas, l'application des filtres génère des images très bruitées malgré l'application du filtre médian avant les filtres de Sobel.

Déplacements

Image 00006v 00009v 00011v 00029u 00087u 00097u 00106v 00128u 00398u 00458u 00500u 00737u 00757v 00822u 00888v 00889v 00892u 00907v 01031v 01043u 01047u 01657v 01880v
Vert [0 0] [0 0] [0 1] [37 17] [48 41] [47 14] [4 1] [34 25] [53 24] [43 4] [59 -2] [9 4] [2 3] [57 25] [6 0] [2 0] [16 3] [3 -2] [1 0] [1 1] [-16 9] [23 20] [6 0] [6 2]
Rouge [0 0] [8 0] [8 2] [83 51] [91 59] [91 41] [9 -1] [55 51] [91 36] [83 47] [99 -35] [51 25] [5 5] [99 33] [12 1] [4 3] [51 6] [6 -2] [13 -1] [4 2] [27 31] [67 43] [12 1] [14 4]