Cette page web permet de présenter deux algorithmes permettant de reconstituer des photographies
prise par Sergei Mikhailovich Prokudin-Gorskii. Le défi étant que trois photos distinctes sont fournies.
Chacune représente un même portrait mais à travers un filtre de couleur différent!
Le premier algorithme est parfait pour des petites photos de moinde qualité.
L'algorithme est très simple et s'exécute rapidement: il superpose les différentes photos jusqu'à avoir une résultat intéressant.
L'algorithme utilise une métrique pour déterminer la qualité de l'alignement: la "somme des différences au carré" (SDC).
Voici les résultats obtenus :
Nom Photo | Décalage | Image | Notes Additionnelles |
---|---|---|---|
00106v* | G:3,1 R:9,0 | ![]() |
Cette photo était plus difficile à aligner que les autres, il a fallu utiliser une plus petite partie de la photo, probablement à cause des bordures noires |
00757v | G:2,3 R:5,5 | ![]() |
|
00888v | G:6,1 R:12,0 | ![]() |
|
00889v | G:1,2 R:4,3 | ![]() |
|
00907v | G:2,0 R:5,-1 | ![]() |
|
00911v | G:0,-1 R:13,-1 | ![]() |
|
01031v | G:1,2 R:4,2 | ![]() |
|
01657v | G:5,1 R:10,1 | ![]() |
|
01880v | G:6,2 R:14,4 | ![]() |
Le deuxième algorithme est plus complexe: l'approche à échelles multiples
L'algorithme est fortement inspiré du premier, mais comme les images contiennent trop de pixels
(le premier algorithme prendrait beaucoup trop de temps) il est nécessaire
de travailler sur des versions condensées des photographies de départ. Cela permet d'appliquer le premier algorithme
rapidement et de faire une estimation brouillone de la translation à effectuer. Ensuite il s'agit d'appliquer
les translations à la taille originale, mais comme l'alignement est déjà presque correct, ce n'est plus
nécessaire de couvrir un "jeu" de pixel aussi large.
Voici les résultats obtenus:
Nom Photo | Décalage | Lien vers image | Image | Notes Additionnelles |
---|---|---|---|---|
00029u | G:40,20 R:91,40 | Click | ![]() |
|
00087u* | G:49,40 R:108,56 | Click | ![]() |
Ici le résultat n'est pas parfait. Par contre, le paysage est très beau. Le problème semble être causé par l'enfant au centre qui a du bouger pendant la photo! |
00128u | G:36,24 R:54,36 | Click | ![]() |
|
00458u | G:42,4 R:91,32 | Click | ![]() |
|
00737u | G:16,4 R:50,12 | Click | ![]() |
|
00822u | G:58,24 R:124,32 | Click | ![]() |
|
00892u | G:15,4 R:48,4 | Click | ![]() |
|
01043u | G:-18,8 R:13,16 | Click | ![]() |
|
01047u | G:25,20 R:69,32 | Click | ![]() |
|
01309u | G:72,16 R:152,19 | Click | ![]() |
|
01343u | G:73,-13 R:172,-33 | Click | ![]() |
|
01553u | G:88,12 R:168,8 | Click | ![]() |
|
01636u | G:43,6 R:99,10 | Click | ![]() |
|
01708u | G:66,2 R:128,0 | Click | ![]() |
|
01812u | G:51,16 R:111,31 | Click | ![]() |
|
01892u | G:60,32 R:136,60 | Click | ![]() |
|
01898u | G:36,4 R:108,-4 | Click | ![]() |
|
01755u | G:51,-4 R:125,-8 | Click | ![]() |
|
01899u | G:36,-16 R:74,-48 | Click | ![]() |
|
image1 stable | G:0,0 R:1,0 | Click | ![]() |
Sur une surface plane, il ne semble pas y avoir de retouche à faire |
image2 relativement stable | G:1,-1 R:0,0 | Click | ![]() |
Ici, nous avons encore un problème de mouvement humain.. |
image3 volontairement instable | G:0,0 R:0,1 | Click | ![]() |
Bouger volontairement l'image semble causer des problèmes à l'algorithme, qui ne semble pas trouver de meilleur alignment. Finalement, mon deuxième algorithme semble avoir de la difficulté avec mes photos, probablement à cause du très faible nombre de pixels.. |