Wie findet man die Ecken ein Rect-Objekt in openCV?
Ich bin mit openCV-Bibliothek auf der android-Plattform.
Ich habe erfolgreich erkannt, das größte Rechteck aus dem Bild aber da meine Anwendung wird verwendet für das Scannen Zwecke ,ich will die Perspektive ändern sowie Funktionalität.
Ich weiß,wie perspectiveTransform und warpPerspectiveTransform,aber dafür werde ich brauchen Ecken des Rechtecks für die Quell-Punkte.
Scheint es sehr leicht zu finden, die Ecken angesichts der Tatsache, wir haben die Koordinaten der ersten Ecke(Oben Links) und die Breite/Höhe im Zusammenhang mit der Rect-Objekt, aber das problem ist ,für ein gedrehtes Rechteck(übliche boundingRect aber Seiten, die nicht parallel zur Achse) ,diese Werte sind sehr unterschiedlich.In diesem Fall speichert die entsprechenden Werte eines anderen Rechtecks mit Seiten parallel zur Achse, und für den gedrehten Rechteck so, dass macht mich nicht in der Lage zu erkennen, die Ecken des eigentlichen Rechtecks.
Außerdem möchte ich einen Vergleich zwischen diesen beiden algorithmen zur Erkennung eines Blattes aus dem Bild.
-
Canny-edge -> Größte Kontur -> größte Rechteck -> suchen-Ecken - > Perspektive ändern
-
Canny-edge-> Hough-Linien -> Schnittpunkt der Zeilen -> Perspektive ändern
Die Sache, die ich möchte Fragen, ist gegeben, wenn wir ein Rect-Objekt ,wie man all die Ecken des Rechtecks ?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin sehr aufregendes um meine Frage zu beantworten ! Es war einfach, aber es passiert, wenn u gerade beginnen, mit etwas, was mit nicht so richtig relevante Unterlagen .
Ich versuche hart, um die Ecken eines Allgemeinen Rechtecks, das wurde nicht definiert, in der Implementierung von openCV und war daher fast unmöglich.
Folgte ich den standard-code auf stackoverflow für die größte Quadratische Erfassung. und Ecken können leicht finden sich mit der approxCurve selbst.
//konvertieren Sie das Bild in schwarz und weiß
und die Funktion für die Perspektive der Transformation, die unten gegeben werden :