5

Ho un'immagine binaria di un worm (estrazione di blob che funziona bene). Sono interessato a montare una linea centrale sul blowb (worm).linea centrale di un blob poligonale (immagine binaria)

Finora mi è venuto in mente questo: partendo da un poligono (dopo l'estrazione del contorno di blob nell'immagine) ho applicato un calcolo voronoi e scartato tutti i vertici che sono al di fuori del poligono (blu) che mi ha dato il centro nero linea che posso ulteriormente utilizzare per adattarsi a una linea di mezzeria liscia.

Tuttavia, questo calcolo non è affatto robusto (è necessario rimuovere i vertici di voronoi non all'interno del poligono?) Qualcuno conosce un flusso di lavoro algoritmico per ottenere la linea centrale di un poligono o la linea centrale di un oggetto blob (immagine binaria). (Scheletrizzazione ?, triangolazione poligono un utilizzando punti medi dei bordi interni)

Ecco una dimostrazione:

enter image description here

risposta

0

Ho trovato una soluzione migliore:

  • skeltonize blob binario
  • crea lo graph (senza cicli) dello scheletro tracciando linee di pixel e punti di diramazione
  • ottenere tutti i percorsi più brevi da ciascun nodo finale a tutti gli altri nodi finali e prendere quello più lungo (circa l'inizio e la fine del BLOB)
  • il percorso risultante da un nodo finale (grado = 1) a un altro nodo finale è un'approssimazione della linea mediana del verme.

Se qualcuno è interessato alla soluzione, posso condividere un taccuino python. risultato finale: verde = grafico linea mediana finale, di colore verde scuro = linea mediana finale

il grafico della Skelton

Source Code:
Il codice a questa domanda può essere trovato qui: https://github.com/gabyx/WormAnalysis (se lo usi per favore lo fai vedere)

+0

Sembra fantastico! Potresti condividere il tuo taccuino Python con me? Grazie! – crazjo

+0

Ovviamente, posterò stasera qualcosa, l'ho già preparato, qualche tempo fa ... ho bisogno di trovarlo ... – Gabriel

+1

Il codice è qui: https://github.com/gabyx/WormAnalysis – Gabriel