Faire une image de mosaïques d'images
-
23-08-2019 - |
Question
Je l'ai vu quelques images où ils généralement faire un visage de nombreuses petites images.
Par exemple, ils disent tuiles 100 images dans la grille de 10x10, et d'une certaine manière, ils varient de teinte / satellite / col des images plus petites de sorte que lorsque vous voyez le Big Picture , vous voyez une autre image.
La question se résume à - dire que vous avez une image. Quel type d'algorithme appliqueriez-vous à cette image de sorte que la valeur RVB moyenne de cette image est celle que vous avez défini?
La solution
- Calculer la teinte / sat / valeur de chaque tuile (utiliser HSV car semblent plus petites différences ici plus « naturelle » à l'œil humain que dans l'espace RGB)
- calculer maintenant les mêmes valeurs pour chaque tuile n * n de votre grande image
- Rechercher les carreaux avec les valeurs les plus proches de HSV (minimum
sqrt((h1-h2)^2 - (s1-s2)^2 - (v1-v2)^)
) et cachet que la tuile réduite à n * n dans le résultat.
Pour trouver le HSV pour une tuile, il devrait être suffisant pour résumer toutes les valeurs RVB et les diviser par le nombre de pixels et le convertir RVB finale triple en VHS. Mais pour être sauver, je vous suggère d'essayer que les deux versions.
Voir qui article de Wikipedia pour RGB <->. Conversions HSV
Pour affiner l'algorithme, vous pouvez diviser chaque tuile en une m m et calculer le HSV moyenne pour chaque élément de grille. Ensuite, lorsque vous regardez un match, il faut diviser la grande image en comme d'habitude, mais aussi calculer m m valeurs HSV. Sélectionnez qui correspond à la plupart de ces tuiles m * m mieux. Cela permet à l'algorithme pour sélectionner les tuiles qui ont la même structure que le tableau d'ensemble.
Pour une touche supplémentaire, essayez de créer un image gigapixels de .