Sono sicuro che ci sia qualche algoritmo boundary-map di elaborazione delle immagini per fare questo.
Altrimenti, ecco una soluzione rapida: scegliere un pixel al centro della "zona non scoperta" , che inizialmente è l'intera immagine. traccia le linee orizzontale e verticale in 4 direzioni ciascuna che termina ai bordi della zona e trova il valore da 0 a 1 o viceversa.
Tracciare ciascun valore di tale interruttore e completare il contorno di ogni figura (Passaggio A). Fai lo stesso per le zone che ancora non sono state scoperte: inizia da qualche centro e scava attraverso le linee che collegano il centro al bordo dell'immagine o ad un pixel al confine di una zona conosciuta.
Nello Step-A, è anche possibile verificare se il contorno tracciato è una linea o una curva. Ogni volta che si tratta di una curva, sono necessari solo due punti: punti ad una certa distanza l'uno dall'altro per l'accuratezza del calcolo.
Le linee perpendicolari a questi due punti di tangenza si intersecano al centro del cerchio rosso nella figura.
se quelle due sono le uniche figure che possono apparire nell'immagine, allora è una ricerca attraverso l'array di pixel per i bordi curvi. Hai abbastanza da calcolare il centro del cerchio nel momento in cui hai trovato un confine simile. – ashley
e come si potrebbe raggiungere questo? – Leo