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!