5 votes

Alignement de plusieurs images en une seule ?

Quelle est une bonne méthode pour aligner ensemble des images qui peuvent avoir des rotations, des expositions, etc. différentes, mais qui ont le même arrière-plan ou une autre référence fixe ?

Adobe Photoshop peut le faire avec sa fonction "Photomerge".

Comment puis-je faire cela de manière programmatique ? Existe-t-il une application Open Source qui le fait ?

5voto

Matt Warren Points 7297

Vous souhaitez rechercher image stitching o image registration car ce sont les noms sous lesquels il est également connu. Ce site article de wikipédia contient des informations utiles. Mais je ne connais que des bibliothèques commerciales qui le font, pas de bibliothèques open source.

Le schéma de base du processus (dans la bibliothèque commerciale que je connais) est le suivant :

  1. Au départ, vous devez spécifier l'alignement approximatif des images, à savoir
    • L'image A est à gauche de l'image B et elles se chevauchent de moins de 10%.
    • L'image C est à droite de l'image B et elles se chevauchent de 10 à 20 %, etc.
  2. Sur la base des paramètres du point 1), l'algorithme va tenter de trouver un "modèle" unique dans les régions qui se chevauchent. Il utilisera ensuite un correspondance des modèles pour localiser le modèle dans chacune des deux images qui se chevauchent.
  3. Le point 2) peut être répété plusieurs fois pour obtenir une série d'emplacements correspondants, qui peuvent ensuite être utilisés pour fournir un ajustement exact.

À l'étape 3, vous pouvez également tenir compte des distorsions telles que la rotation et la distorsion de l'objectif. Mais pour tenir compte des changements de couleur, l'étape 2 doit être plus avancée (c'est-à-dire qu'elle ne doit pas être basée uniquement sur le niveau de pixel de l'échelle de gris).

Il y a un demande de fonctionnalité pour ajouter cette fonctionnalité à la Bibliothèque AForge mais pour l'instant, cela n'a pas été fait et je ne sais pas où en est la situation.

4voto

Cesar Points 418

Mise à jour de la réponse de Matt Warren il existe un article sur CodeProject expliquant comment l'assemblage automatique d'images peut être réalisé avec Accord.NET . Il explique également une partie de la théorie qui sous-tend le processus.

Accord.NET Framework est un cadre écrit en C# qui étend le cadre original AForge.NET Framework avec de nouveaux outils et bibliothèques.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X