Jak znaleźć rogi obiektu Rect w openCV?
Korzystam z biblioteki openCV na platformie Android. Z powodzeniem wykryłem największy prostokąt z obrazu, ale ponieważ moja aplikacja będzie używana do celów skanowania, chcę mieć również funkcję zmiany perspektywy.
Wiem, jak zastosować perspectiveTransform i warpPerspectiveTransform, ale do tego potrzebuję narożników prostokąta dla punktów źródłowych.
Wydaje się bardzo łatwe do znalezienia narożników, biorąc pod uwagę fakt, że mamy współrzędne pierwszego rogu (górny lewy) i szerokość / wysokość związane z obiektem Rect, ale problem dotyczy, dla obróconego prostokąta (zwykły prostokąt ograniczający, ale boki nie są równoległe do oś), wartości te są bardzo różne. W tym przypadku przechowuje wartości odpowiadające innemu prostokątowi posiadającemu boki równoległe do osi i pokrywając obrócony prostokąt, dzięki czemu nie mogę wykryć narożników rzeczywistego prostokąta.
Chcę także porównać te dwa algorytmy do wykrywania arkusza z obrazu.
Canny edge -> Największy kontur -> największy prostokąt -> znajdź narożniki -> zmiana perspektywy
Canny edge-> Hough lines -> przecięcie linii -> zmiana perspektywy
Rzecz, którą chcę zadać, jest podana, jeśli mamy obiekt Rect, jak zdobyć wszystkie rogi tego prostokąta?
Z góry dziękuję.