Ho molte linee orizzontali e verticali che compongono il rettangolo come in questo esempio.Dato molte linee orizzontali e verticali, come trovare tutti i rettangoli che contengono un sub-rettangolo al loro interno?
Esiste un algoritmo o un codice che può individuare ogni rettangolo che non contiene un altro rettangolo. Voglio dire, il rettangolo più grande in questa immagine non è un rettangolo che sto cercando perché contiene altri rettangoli all'interno di esso.
I rettangoli che sto cercando devono essere vuoti. Ho una lista dei punti iniziali e finali di ogni riga come (a, b) a (c, d). Voglio di conseguenza una lista di rettangoli (x, y, w, h) o equivalenti.
Si noti che alcune linee hanno linee che si intersecano ad angoli retti, ad esempio la linea superiore del rettangolo più largo in questa immagine è una linea singola ha una linea verticale che si interseca andando verso il basso.
quale lista, qualcosa come '[((x1, y1), (x1, y2)), ((x1, y2), (x1, y3)), ((x1, y1), (x1, y3)), ...] '? – Aprillion
Dipingi la tua area con il metodo di riempimento inondato da qualsiasi punto bianco. Ogni area con 4 angoli sarebbe il rettangolo desiderato. –
Non è un'immagine bitmap, ho solo un elenco di linee orizzontali e verticali. Nessun riempimento. Non sono sicuro di cosa intendi per la lista con y1, y2, y3 crescente, ho solo bisogno di una lista di rettangoli come risultato comunque rappresentato. – Phil