Question

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

Adobe Photoshop peut faire avec sa fonction "Photomerge".

Comment puis-je faire programatically? Y at-il une application Open Source qu'il fait?

Était-ce utile?

La solution

Vous voulez rechercher image stitching ou image registration car ce sont les noms qu'il est également connu par. Cette wikipedia article a des informations utiles. Mais je ne connais des bibliothèques commerciales qui le font, pas tous les open source.

Les grandes lignes du processus (dans la bibliothèque commerciale que je connaisse) est la suivante:

  1. Au départ, vous devez spécifier l'alignement approximatif des images, à savoir
    • l'image A est à la gauche de l'image B et ils se chevauchent de moins que 10%.
    • Image C est à droite de l'image B et ils se chevauchent de 10-20%, etc.
  2. Sur la base des paramètres 1) l'algorithme tentera de trouver « modèle » unique dans une des régions qui se chevauchent. Il utilisera ensuite un modèle de rel="noreferrer"> technique pour localiser le modèle dans chacune des 2 images qui se chevauchent.
  3. Point 2) peut être répété plusieurs fois pour donner une série d'emplacements correspondant, qui peut ensuite être utilisé pour fournir un ajustement précis.

A l'étape 3, vous pouvez également tenir compte de la distorsion telles que la rotation et la distorsion de l'objectif. Mais pour permettre des changements dans l'étape de couleur 2 devrait être plus avancé (à savoir non seulement en fonction du niveau de pixel de gris).

Il y a une demande de fonctionnalité de rel="noreferrer"> pour ajouter cette fonctionnalité à la bibliothèque Aforge , mais pour le moment cela n'a pas été fait et je ne sais pas l'état actuel.

Autres conseils

Mise à jour de la réponse par Matt Warren , il y a CodeProject expliquant comment couture automatique de l'image peut être effectuée à l'aide Accord.NET . Il explique également une partie de la théorie derrière le processus.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top