Wie finde ich die Ecken eines Rect-Objekts in openCV?
Ich benutze OpenCV-Bibliothek auf der Android-Plattform. Ich habe das größte Rechteck aus dem Bild erfolgreich erkannt, aber da meine Anwendung für den Scan-Zweck verwendet wird, möchte ich auch die Perspektivenänderungsfunktion haben.
Ich weiß, wie man perspectiveTransform und warpPerspectiveTransform anwendet, aber dafür benötige ich Ecken des Rechtecks für die Quellpunkte.
Es scheint sehr einfach zu sein, die Ecken zu finden, da die Koordinaten der ersten Ecke (oben links) und die Breite / Höhe mit dem Rect-Objekt verknüpft sind. Das Problem ist jedoch, dass ein Rechteck gedreht wird (normales boundingRect, aber Seiten nicht parallel zu Achse) sind diese Werte sehr unterschiedlich. In diesem Fall werden die Werte gespeichert, die einem anderen Rechteck entsprechen, dessen Seiten parallel zur Achse verlaufen und das gedrehte Rechteck abdecken, sodass ich keine Ecken des tatsächlichen Rechtecks erkennen kann.
Ich möchte auch einen Vergleich zwischen diesen beiden Algorithmen durchführen, um ein Blatt aus dem Bild zu erkennen.
Canny Edge -> Größte Kontur -> Größtes Rechteck -> Ecken finden -> Perspektivenwechsel
Canny Edge -> Hough Lines -> Schnittpunkt der Linien -> Perspektivenwechsel
Die Sache, die ich fragen möchte, ist gegeben, wenn wir ein Rect-Objekt haben, wie man alle Ecken dieses Rechtecks erhält?
Danke im Voraus.