2017-10-10 9 views
0

J'ai une image qui représente l'élévation d'une zone. Mais le drone qui l'a fait ne va pas nécessairement en ligne droite (bien que l'image soit toujours rectangulaire). J'ai aussi des coordonnées gps générées tous les 20cm du chemin.Comment mosaïque/courbe/courbe image avec courbure en python?

Comment est-ce que je peux "plier" cette image rectangulaire (courbe/mosaïque) de sorte qu'elle représente le chemin incurvé que le drone a réellement traversé? (en python)

Je n'ai pas réussi à écrire du code car je ne sais pas quel est le nom de ce "gauchissement" de l'image. Veuillez trouver l'image jointe en tant qu'état final recherché et les lettres horizontales normales en tant qu'état de départ.

enter image description here

+0

Veuillez consulter [Comment créer un exemple minimal, complet et vérifiable] (https://stackoverflow.com/help/mcve). – randomir

+0

@randomir s'il vous plaît voir le montage, je ne sais pas quel est le nom de ceci ou de toutes les fonctions scipy/PIL pertinentes qui rendraient cela possible –

+0

Est-ce que l'image est censée montrer que le drone a passé deux collines, ou a suivi une rivière? . –

Répondre

0

Il pourrait y avoir une meilleure réponse, mais je suppose que vous pouvez utiliser les fonctions remappage de OpenCV pour cela.

Le processus ressemblerait que:

  1. A partir de vos données, obtenir votre fonction gauchissement. Cette fonction mappera les valeurs de pixels (x, y) de votre image d'entrée I aux valeurs de pixels (x, y) de votre image de sortie O
  2. Calculez la taille requise dans l'image de sortie pour héberger l'ensemble de votre image déformée, et créez-le
  3. Créez deux cartes, mapx et mapy, qui indiqueront les coordonnées de pixel dans I pour chaque pixel dans 0 (c'est, en un sens, l'inverse de votre fonction de déformation)
  4. Appliquer la fonction de remappage OpenCV (qui vaut mieux que d'appliquer simplement vos cartes car il interpole si l'image de sortie est plus grande que l'entrée)

Selon votre fonction de déformation, il peut être très simp le, ou presque impossible d'appliquer cette technique.

Vous pouvez trouver un exemple avec une fonction de gauchissement super simple ici: https://docs.opencv.org/2.4/doc/tutorials/imgproc/imgtrans/remap/remap.html

Des exemples plus complexes peuvent être examinés dans OpenCV doc et le code de la recherche à la distorsion et de rectification des images de la caméra.