Sto facendo un po 'di lavoro (troppo complicato da spiegare), e uno dei compiti che ho è che ho bisogno di convertire un'immagine raster di un poligono levigato in uno scheletro. Quindi ho bisogno di fare qualcosa del genere: Ricerca dell'algoritmo: generazione di scheletro per immagini raster
Ho un'immagine raster (a sinistra) e voglio avere un grafico composto da punti e bordi (a destra) che rappresenta l'immagine.
Ho letto di algoritmi, in particolare un libro di Steven Skiena, in cui dice di usare l'algoritmo "Brush fire", che spiega come "ogni ciclo, passa attraverso ogni punto che è sul bordo, per i bordi che collide aggiungi un punto allo scheletro e rimuovi i punti rimanenti, passa al ciclo successivo finché rimane solo lo scheletro "ma tutte le informazioni che ho trovato su questo algoritmo online riguardano alcuni algoritmi di pathfinder per i robot, non capisco come applicare qui (in pratica come faccio a sapere "spigoli" se tutto quello che ho sono le coordinate dei pixel pieni/vuoti).
Ho cercato la libreria CGAL e la sua dimostrazione di scheletri, ma non funziona bene quando il poligono ha molti vertici, quindi basta convertire ogni vertice sul bordo in un vertice di un poligono e quindi alimentarlo all'algoritmo non produrrà buoni risultati.
Mi aspetto che questo debba essere un algoritmo comune in quanto l'attività sembra essere abbastanza semplice, ma non voglio inventare la ruota e non ho trovato nulla sull'argomento (forse perché non conosco il parole chiave corrette)
Si dovrebbe provare la scheletrizzazione dell'immagine binaria dopo il quale rilevare la linea tramite Hough Transforms. Sarebbe più semplice se usi opencv, ad esempio, ma è anche possibile implementarli. –