[Java] Verificare che una curva sia chiusa a partire da tutte le coordinate

Messaggioda Return89 » 30/07/2018, 20:15

Buonasera,
ho il seguente problema: devo definire se una data figura è chiusa.
Ho tutte le coordinate della figura (x,y) ed inoltre ho anche una BufferedImage rappresentante l'immagine in formato binario (sfondo nero e figura bianca).
Vorrei evitare di lavorare direttamente sull'immagine perché potrebbe essere "contaminata" da altre immagini e quindi rischierei di considerare pixel non relativi all'immagine.
Inoltre la figura/curva ha uno spessore variabile (diversi pixel). Immagino che la soluzione più ovvia è quella di percorrere tutto il contorno della figura e vedere se fa un giro completo ma non riesco ad implementare questa logica tramite codice. Probabilmente mi sfugge una soluzione più ovvia (anche considerando il fatto che possiedo tutte le coordinate).
Avete qualche idea?
Vorrei stabilire se la data figura è chiusa.

A titolo di esempio mostro la seguente figura (la curva che voglio studiare è quella bianca, le curve evidenziate in verde sono "esterne"):
Immagine


Grazie!
Return89
Average Member
Average Member
 
Messaggio: 259 di 526
Iscritto il: 13/06/2013, 23:00

Re: [Java] Verificare che una curva sia chiusa a partire da tutte le coordinate

Messaggioda Raptorista » 31/07/2018, 09:11

Cosa significa che possiedi tutte le coordinate? Tutte le coordinate dei pixel bianchi?
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4962 di 9616
Iscritto il: 28/09/2008, 19:58

Re: [Java] Verificare che una curva sia chiusa a partire da tutte le coordinate

Messaggioda Return89 » 31/07/2018, 09:15

Si esatto, posseggo tutte le coordinate dei pixel bianchi.
Qualche idea?:)
Return89
Average Member
Average Member
 
Messaggio: 260 di 526
Iscritto il: 13/06/2013, 23:00

Re: [Java] Verificare che una curva sia chiusa a partire da tutte le coordinate

Messaggioda Raptorista » 31/07/2018, 09:16

Ricordi quando da piccolo disegnavi con Paint e al momento di riempire col secchiello coloravi tutta l'immagine anziché solo l'interno perché qualche linea non era chiusa?
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4963 di 9616
Iscritto il: 28/09/2008, 19:58

Re: [Java] Verificare che una curva sia chiusa a partire da tutte le coordinate

Messaggioda Return89 » 31/07/2018, 09:22

Si...prosegui :)
Return89
Average Member
Average Member
 
Messaggio: 261 di 526
Iscritto il: 13/06/2013, 23:00

Re: [Java] Verificare che una curva sia chiusa a partire da tutte le coordinate

Messaggioda Raptorista » 31/07/2018, 09:24

No, prosegui tu, che diavolo XD
Quello è un test per verificare se il piano è diviso in due regioni o no.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4964 di 9616
Iscritto il: 28/09/2008, 19:58

Re: [Java] Verificare che una curva sia chiusa a partire da tutte le coordinate

Messaggioda Return89 » 31/07/2018, 09:33

Si certo, però come lo implementeresti?
Secondo me l'idea migliore resta quella di percorrere il bordo ma, come scritto, non capisco come implementarlo in modo efficiente.
Idem per la tua idea: è possibile implementarla in modo efficiente?
Return89
Average Member
Average Member
 
Messaggio: 262 di 526
Iscritto il: 13/06/2013, 23:00

Re: [Java] Verificare che una curva sia chiusa a partire da tutte le coordinate

Messaggioda Raptorista » 31/07/2018, 09:35

Ti devi espandere a macchia d'olio: prendi un pixel di un dato colore e contrassegnalo, poi contrassegna tutti quelli adiacenti dello stesso colore, poi ripeti per ciascuno di essi.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4965 di 9616
Iscritto il: 28/09/2008, 19:58

Re: [Java] Verificare che una curva sia chiusa a partire da tutte le coordinate

Messaggioda Return89 » 31/07/2018, 09:41

Ok tutto chiaro. Grazie!
Return89
Average Member
Average Member
 
Messaggio: 263 di 526
Iscritto il: 13/06/2013, 23:00


Torna a Informatica

Chi c’è in linea

Visitano il forum: Google [Bot] e 1 ospite