Trouvez la position dans l'image d'origine à partir des coordonnées après conversion affine (Python + OpenCV)

Trouvez la position dans l'image d'origine à partir des coordonnées après la conversion affine

Je veux vérifier si l'image découpée après la conversion affine (cv2.warpAffine) correspond à l'image d'origine. Les coordonnées des quatre coins de l'image découpée doivent être dans l'image d'origine

Façon de penser

En regardant la matrice passée à warpAffine, c'est une matrice (2 × 3). Si vous ajoutez la ligne [0, 0, 1] à ceci et que vous la transposez ~~, vous pouvez obtenir la matrice de rotation utilisée en premier. En supposant que les coordonnées après conversion affine sont (x, y), multipliez ~~ [x, y, 1] par la matrice inverse de la matrice de rotation ~~ La matrice inverse de la matrice de rotation est [[x], [y], [1] ]] Je pense que les coordonnées originales peuvent être obtenues en multipliant par (3 × 1). Je pense qu'il existe une méthode qui prend en charge OpenCV, mais ~~ c'est un problème à trouver ~~ Je ne sais pas laquelle utiliser ou comment l'utiliser.

code

inverseWarpAffine.py


import cv2
import numpy as np

def getOriginalPosition(p, M):
  origin = np.array([[p.x], [p.y], [1]])
  rotateM = np.array([M[0], M[1], [0, 0, 1]])
  invM = np.linalg.inv(rotateM.T)
  return np.dot(invM, origin)[:2, 0]

Recommended Posts

Trouvez la position dans l'image d'origine à partir des coordonnées après conversion affine (Python + OpenCV)
Trouvez la partie 575 de Wikipedia en Python
Python Open CV a essayé d'afficher l'image sous forme de texte.
Trouver des erreurs en Python
Transmettez les données OpenCV de la bibliothèque C ++ d'origine à Python
J'ai essayé de trouver la matrice affine dans l'alignement de l'image (correspondance des points caractéristiques) en utilisant la transformation affine
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
Trouver la similitude d'image avec Python + OpenCV
Acquisition d'images depuis une caméra avec Python + OpenCV
Essayez de mesurer la position d'un objet sur le bureau (système de coordonnées réel) à partir de l'image de la caméra avec Python + OpenCV
[Python] Téléchargez l'image d'origine à partir de la recherche d'images Google
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé de "différencier" l'image avec Python + OpenCV
Qu'est-ce que wheezy dans l'image Docker Python?
Résultat du calcul après la virgule décimale en Python
[Python] Trouver des coordonnées sous deux angles et une distance
Découvrez la fraction de la valeur saisie en python
J'ai essayé de "binariser" l'image avec Python + OpenCV
Trouvez la solution de l'équation d'ordre n avec python
[Python] Trouvez la matrice de translocation en notation d'inclusion
[Python + OpenCV] Peignez la partie transparente de l'image en blanc
Afficher n chiffres après la virgule décimale en python
[Python] Obtenez les nombres dans l'image graphique avec OCR
[Python] Spécifiez la plage de l'image en faisant glisser la souris
Convertissez l'image au format .zip en PDF avec Python
Ecrire des caractères dans l'illustration de la carte avec OpenCV python
Trouvez la matrice Hermite et ses valeurs uniques en Python
Trouvez le maximum de Python
Format d'image en Python
La chose semblable à une recherche de liste en Python
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
Découvrez la largeur apparente d'une chaîne en python
Python --Trouvez le nombre de groupes dans l'expression regex
J'ai essayé de reconnaître le visage de la vidéo (OpenCV: version python)
Obtenez la valeur tout en spécifiant la valeur par défaut de dict en Python
L'image en échelle de gris est affichée sous forme d'image couleur dans OpenCV / Python
Exécutez le fichier python après avoir activé l'environnement virtuel python avec le fichier de commandes
Trouvez l'écart moyen / standard des valeurs de luminosité dans l'image
Trouver les valeurs propres d'une vraie matrice symétrique en Python