Travail inspiré de :
A. Levin D. Lischinski and Y. Weiss Colorization using Optimization.
ACM Transactions on Graphics, Aug 2004.
Ce travail présente une méthode pour rapidement ajouter de la couleur à une image en noir et blanc
simplement en ajoutant quelques traits de couleurs.
![]() |
![]() |
![]() |
L'algorithme prend une image en niveau de gris complète ainsi qu'une version "barbouillée" de la même image.
Comme l'auteur l'explique, le principe est simple :
The under-lying algorithm is based on the simple premise that nearby pixels in space-time that have similar gray levels should also have similar
colors.
L'image résultante sera composée de trois canaux, le premier est la luminance: l'information de ce canal provient de l'image en niveau de gris.
Les deux autres canaux représentent la chrominance, contenant l'information sur la couleur de l'image. Cette information devra être calculée par l'algorithme.
Pour trouver ces deux valeurs pour un pixel en particulier, on le compare à ses pixels voisins. Si le canal de luminance d'un voisin est semblable à
celui du pixel à colorer, les deux devraient avoir une couleur similaire. L'impact d'un pixel voisin sur notre pixel est donc ajusté selon leur similarité au niveau de la luminance.
Voici la fonction de pondération utilisée (formule 2 de l'article):
Wrs ∝ e ^(−(Y(r)−Y(s))²/2var²
où Wrs correspond au poids du pixel s sur le pixel r.
Y(s) et Y(r) correspondent à la valeur de luminance des pixels.
et var à la variance
On peut voir que la fonction de pondération utilisée dans mon algorithme est basée sur la différence au carrée entre les canaux de luminance.(Qui sera ajustée pour que la somme des pixels voisins arrive à 1).
À l'échelle de l'image entière, cela signifie qu'il faudra trouver une valeur pour chaque pixel qui, dans l'ensemble, minimisera la différence de couleur entre des pixels voisins similaires.
On utilise simplement mldivide de Matlab pour résoudre le système d'équation qui minimise cette différence, avec les contraintes de couleurs fournies par l'utilisateur pour les
deux canaux représentant la couleur.
source : Andrew Mroki https://www.pinterest.com/pin/455637687277024687/?from_navigate=true
Barbouillis | Résultat | Commentaires |
---|---|---|
![]() |
![]() |
Ce premier résultant est intéressant: |
Barbouillis | Résultat | Commentaires |
---|---|---|
![]() |
![]() |
Une solution pour le problème du choix de couleur est d'utiliser les couleurs de l'images originales, bien entendu l'algorithme n'est pas particulièrement |
source : http://gopixdatabase.com/fruit+bowl+black
Barbouillis | Résultat | Commentaires |
---|---|---|
![]() |
![]() |
L'effet ici est particulièrement réussi. |
Barbouillis | Résultat | Commentaires |
---|---|---|
![]() |
![]() |
J'ai tenté de résoudre les deux problèmes initiaux, en trouvant une photo où les couleurs pourront êtres vives et uniforme pour chaque fleur |
source: http://bcater.com/mfc/event/mothers-day-brunch/
Voici une comparaison côte à côte de l'image originale et d'une recontruction avec les couleurs originales. On peut voir que malgré la grande quantité de couleur échantillonée, le résultat aurait encore pu être amélioré. De plus, la similarité de certaines fleurs confond parfois l'algorithme, qui ajoute une teinte non désirée à une fleur.
Barbouillis | Avec Agorithme | Originale |
---|---|---|
![]() |
![]() |
![]() |
Ici, j'ai essayé tenté de trouver des utilités alternative à l'algorithme, la plupart ont été des échecs, j'en ai conservé 1 pour la postérité.
Mais j'ai tout de même trouvé une utilisation intéressante!
Voici un exemple d'effet raté, l'objectif était de changer uniquement la couleur de mon chandail et la couleur de peau. Le résultat est peu convaincant.Le contraste
entre des couleurs réelles et les couleurs artificielles est particulièrement visible et les contours ne sont pas bien définis..
Image Originale | Barbouillis | Résultats |
---|---|---|
![]() |
![]() |
![]() |
Voici une meilleure utilisation de l'algorithme! J'utilise les couleurs déjà présentes dans l'image, mais les appliquent à
d'autres objets. Les couleurs restent réalistes et l'effet est amusant.
Image Originale | Barbouillis | Résultats |
---|---|---|
![]() |
![]() |
![]() |
Je voulais tenter l'algorithme sur des humains/portraits, voici les résultats. Il est difficile de manipuler les couleurs des
visages à cause du nombre élevé de petits traits ou des cheveux, à cause du dégradé de couleur. Par contre, changer les couleurs
des vêtements à motifs est simple et convaincant.
Image Originale | Barbouillis | Résultats |
---|---|---|
![]() |
![]() |
![]() |