Maison >développement back-end >C++ >Comment utiliser correctement cv::warpPerspective pour le redressement d'image ?

Comment utiliser correctement cv::warpPerspective pour le redressement d'image ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-03 19:18:12274parcourir

How to Correctly Use cv::warpPerspective for Image Deskewing?

Comment appliquer cv::warpPerspective pour redresser un ensemble de points

Lors de l'exécution d'une transformation de perspective sur un ensemble de points pour obtenir un effet de redressement, il est crucial de comprendre la bonne organisation des points et l'utilisation appropriée des cv::getPerspectiveTransform.

Assurer l'ordre correct des points

Les points représentant les coins de la ROI doivent suivre un ordre spécifique dans les vecteurs source et de destination. Par exemple, si les points sources sont disposés comme (en haut à gauche, en bas à gauche, en bas à droite, en haut à droite), les points de destination doivent également suivre cet ordre.

Définition de la taille de l'image

Pour vous assurer que l'image résultante contient uniquement l'objet qui vous intéresse, définissez sa largeur et sa hauteur pour qu'elles correspondent à la largeur et à la hauteur du cadre de délimitation rectangulaire autour de l'objet. ROI.

Utiliser des transformations affines pour plus d'efficacité

Pour les transformations affines (rotation, redimensionnement, redressement), il est plus efficace d'utiliser les fonctions getAffineTransform et warpAffine. Ces fonctions n'attendent que trois points et une matrice 2 par 3 au lieu d'une matrice 3 par 3.

Définition de la taille de l'image de destination

Pour créer une destination image avec une taille différente de celle de l'entrée, utilisez la syntaxe suivante dans cv::warpPerspective:

cv::warpPerspective(src, dst, dst.size(), ... );

ou utilisez la syntaxe suivante dans cv::warpAffine:

cv::warpAffine(src, rotated, warpAffineMatrix, size, INTER_LINEAR, BORDER_CONSTANT);

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn