Correction de la Perspective dans OpenCV à l'aide de python
Je suis en train de faire une correction de la perspective d'un rectangle incliné ( carte de crédit), qui est incliné dans les 4 directions. J'ai pu trouver ses quatre coins et les angles de son inclinaison, mais je ne trouve pas l'emplacement exact des coordonnées, où il doit être prévu. Je suis à l'aide de cv2.getPerspectiveTransform de faire la transformation.
J'ai le ratio d'aspect de la carte réelle (non incliné), je veux ces coordonnées telles que le ratio d'aspect original est conservé. J'ai essayé à l'aide d'un rectangle de délimitation, mais cela augmente la taille de la carte.
Toute aide serait appréciée.
Vous pouvez voir la réponse ici stackoverflow.com/questions/22519545/... pourrait être utile.
J'ai indiqué dans ma question que j'ai déjà essayé de prévision à rectangle de sommets, je n'ai pas le réel aspect ratio, la largeur augmente,je voudrais afficher l'image
En prenant les sommets du rectangle de délimitation sur l'estimation de la largeur de la carte
Oui c'est vrai............
Je me trompe ou ne pas que le code à barres de coder quoi que les chiffres sont vainement occulté sous elle?
J'ai indiqué dans ma question que j'ai déjà essayé de prévision à rectangle de sommets, je n'ai pas le réel aspect ratio, la largeur augmente,je voudrais afficher l'image
En prenant les sommets du rectangle de délimitation sur l'estimation de la largeur de la carte
Oui c'est vrai............
Je me trompe ou ne pas que le code à barres de coder quoi que les chiffres sont vainement occulté sous elle?
OriginalL'auteur Anuradha | 2014-03-26
Vous devez vous connecter pour publier un commentaire.
Ici est la façon dont vous avez besoin à suivre...
Pour des raisons de simplicité, j'ai redimensionné ton image de plus petite taille,
Vous pouvez consulter ci-dessous le code C++,
Dernière question, si je le peut. Pourriez-vous s'il vous plaît montrer comment vous pouvez obtenir un bon birdview à partir de cette image: imgur.com/a/v1mD0 , j'ai essayé par tous les moyens pour obtenir un bon résultat mais c'était le meilleur que j'ai jamais réussi à obtenir: imgur.com/a/MtseW Impossible pour moi de getter une meilleure oiseau-oeil-vue de cette
Un peu hors sujet, mais c'est le meilleur que j'ai été capable de faire imgur.com/a/jXFtD
OriginalL'auteur Haris
J'ai une meilleure solution qui est beaucoup plus facile:
- Le rectangle rouge sur l'image d'origine et les coins des points du rectangle sont source de points
- Nous utilisons
cv2.getPerspectiveTransform(src, dst)
qui prend les points d'origine et de destination comme arguments et retourne la matrice de transformation qui transforme n'importe quelle image à l'image de destination, comme indiqué sur le schéma- Nous utiliser cette matrice de transformation dans
cv2.warpPerspective()
- Comme vous pouvez le voir, les résultats sont meilleurs. Vous obtenez une très belle vue d'oiseau de l'image
OriginalL'auteur Jai