Wykonuję pewną pracę (zbyt skomplikowaną, aby to wyjaśnić), a jednym z zadań, które mam, jest przekształcenie obrazu rastrowego wygładzonego wielokąta w szkielet. Tak więc muszę zrobić coś takiego: Poszukuję algorytmu: generowanie szkieletu dla obrazów rastrowych
Mam obraz rastrowy (po lewej) i chcę mieć wykres składający się z punktów i krawędzi (po prawej), który reprezentuje obraz.
Czytałem o algorytmach, szczególnie o książce Stevena Skieny, gdzie mówi, aby użyć algorytmu "Pędzel ognia", który wyjaśnia jako "każdy cykl, przechodzenie przez każdy punkt, który jest na krawędzi, dla krawędzi, które zderzaj się dodaj punkt do szkieletu i usuń pozostałe punkty, przejdź do następnego cyklu, aż pozostanie tylko szkielet "ale wszystkie informacje, które mogłem znaleźć na temat tego algorytmu online, dotyczą algorytmów odnajdywania ścieżek dla robotów, nie rozumiem, jak zastosować tutaj (w zasadzie, skąd mam wiedzieć "krawędzie", jeśli wszystko, co mam, to współrzędne wypełnionych/wolnych pikseli).
Sprawdziłem bibliotekę CGAL i pokaz szkieletu, ale nie działa to dobrze, gdy wielokąt ma wiele wierzchołków, więc po prostu przekształca każdy wierzchołek na granicy w wierzchołek wielokąta, a następnie podaje go do algorytmu nie przyniesie dobrych wyników.
Spodziewam się, że musi to być typowy algorytm, ponieważ zadanie wydaje się dość proste, ale nie chcę wymyślać koła i nie mogłem znaleźć niczego na ten temat (być może dlatego, że nie znam poprawne słowa kluczowe)
Powinieneś wypróbować szkieletowanie obrazu binarnego po wykryciu linii przez transformacje Hough. Byłoby łatwiej, jeśli na przykład korzystasz z opencv, ale można je również wdrożyć. –