Regardez ces photos de scènes naturelles, avec l'un des canaux RVB retiré:
Source (en rouge): https://en.wikipedia.org/wiki/File:Altja_j%C3%B5gi_Lahemaal.jpg
Source (en vert): https://commons.wikimedia.org/wiki/File:2007_mather-lake_hg.jpg
Source (en bleu): https://commons.wikimedia.org/wiki/File:Fox_01.jpg
Même sans l'un des canaux, vous pouvez probablement déterminer les couleurs de certaines choses, ou au moins avoir une bonne idée si la reconstruction du canal manquant est exacte.
Par exemple, voici la première image avec un canal rouge ajouté en arrière qui est juste un bruit aléatoire:
Cette image n'est clairement pas une reconstruction précise du canal rouge. En effet, les photos de la nature n'utilisent généralement pas l'intégralité du spectre RVB, mais uniquement un sous-ensemble de "couleurs d'apparence naturelle". De plus, les nuances de rouge suivront certains gradients en corrélation avec les autres.
Votre tâche consiste à créer un programme qui prendra une photo dont un canal a été supprimé et tentera d'approximer l'image originale aussi près que possible en reconstruisant ce qu'il pense être le canal manquant.
Votre programme sera évalué en fonction de la correspondance entre le canal manquant et le canal de l'image d'origine, en comptant le pourcentage de pixels dont les valeurs de ce canal se situent à ± 15 (inclus) de la valeur réelle dans l'image d'origine (où les valeurs de 0 à 255 comme dans un canal de couleur 8 bits standard).
Les cas de test sur lesquels votre programme sera noté peuvent être trouvés ici (fichier zip de 9,04 Mo, 6 images). Actuellement, il ne contient que les trois images d'exemple ci-dessus et leurs originaux, mais j'en ajouterai quelques autres plus tard pour faire la suite complète une fois que je les aurai faites.
Chaque image est réduite et rognée à 1024 x 768, donc elles auront le même poids dans votre score. Le programme qui peut prédire le plus de pixels dans la tolérance donnée gagne.
Réponses:
Python 3 + scikit-image
Définit simplement la couleur du canal manquant à la moyenne des deux autres.
Et les images restaurées:
la source
Lua, Love2D
Définit simplement le canal manquant sur le plus petit des deux canaux restants.
Prend un nom de fichier comme argument sur la ligne de commande.
Prime
J'ai essayé de régler le canal manquant sur 255- (a + b), en fixant la valeur. Quant à "combler le vide". Les résultats sont inutiles mais glorieux.
Et avec 255- (a + b) / 2
la source