Heim >Backend-Entwicklung >C++ >Wie verwende ich cv::warpPerspective richtig für die Bildausrichtung?

Wie verwende ich cv::warpPerspective richtig für die Bildausrichtung?

Susan Sarandon
Susan SarandonOriginal
2024-12-03 19:18:12274Durchsuche

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

So wenden Sie cv::warpPerspective zum Entzerren einer Reihe von Punkten an

Wenn Sie eine perspektivische Transformation an einer Reihe von Punkten durchführen, um eine zu erreichen Für den Entzerrungseffekt ist es wichtig, die richtige Organisation der Punkte und die entsprechende Verwendung zu verstehen cv::getPerspectiveTransform.

Sicherstellung der korrekten Punktreihenfolge

Die Punkte, die die Ecken des ROI darstellen, müssen sowohl im Quell- als auch im Zielvektor einer bestimmten Reihenfolge folgen. Wenn die Quellpunkte beispielsweise wie folgt angeordnet sind (oben links, unten links, unten rechts, oben rechts), müssen die Zielpunkte ebenfalls dieser Reihenfolge folgen.

Bildgröße einstellen

Um sicherzustellen, dass das resultierende Bild nur das gewünschte Objekt enthält, stellen Sie dessen Breite und Höhe so ein, dass sie mit der Breite und Höhe des rechteckigen Begrenzungsrahmens um das Objekt übereinstimmen ROI.

Verwenden von affinen Transformationen für Effizienz

Für affine Transformationen (Drehen, Größenänderung, Geradeausrichtung) ist es effizienter, die Funktionen getAffineTransform und warpAffine zu verwenden. Diese Funktionen erwarten nur drei Punkte und eine 2-mal-3-Matrix anstelle einer 3-mal-3-Matrix.

Zielbildgröße festlegen

Um ein Ziel zu erstellen Um ein Bild mit einer anderen Größe als die Eingabe zu erstellen, verwenden Sie die folgende Syntax in cv::warpPerspective:

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

oder verwenden Sie die folgende Syntax in cv::warpAffine:

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

Das obige ist der detaillierte Inhalt vonWie verwende ich cv::warpPerspective richtig für die Bildausrichtung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn