Ho una forma arbitraria definita da una maschera binaria (grigio = forma, nero = sfondo).
Vorrei trovare un rettangolo più grande possibile contenente solo pixel grigi (tale rettangolo è rappresentato in giallo):
La forma è sempre "un pezzo unico" ma non è necessariamente convessa (non tutte le coppie di punti sul contorno della forma possono essere collegate da una linea retta che passa attraverso la forma).
A volte esistono molti di questi "rettangoli massimi" e quindi possono essere introdotti ulteriori vincoli, come:
- Prendendo il rettangolo con il suo centro più vicino al centro di massa della forma (o al centro dell'immagine)
- Prendendo il rettangolo con le proporzioni più vicine a un rapporto predefinito (cioè 4: 3)
Il mio primo pensiero sull'algoritmo è il seguente:
- Calcola la trasformazione della distanza della forma e trova il suo centro di massa
- Fai crescere l'area quadrata mentre contiene solo i pixel della forma
- Fai crescere il rettangolo (originariamente un quadrato) in larghezza o altezza mentre contiene solo i pixel della forma.
Tuttavia, penso che tale algoritmo sarebbe lento e non porterebbe a una soluzione ottimale.
Eventuali suggerimenti?