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!