J'ai une forme arbitraire définie par un masque binaire (gris = forme, noir = fond).
Je voudrais trouver un plus grand rectangle possible contenant uniquement des pixels gris (ce rectangle est représenté en jaune):
La forme est toujours «monobloc» mais elle n'est pas nécessairement convexe (toutes les paires de points sur la frontière de la forme ne peuvent pas être reliées par une ligne droite passant par la forme).
Parfois, plusieurs de ces "rectangles maximaux" existent, puis d'autres contraintes peuvent être introduites, telles que:
- Prendre le rectangle avec son centre le plus proche du centre de masse de la forme (ou centre de l'image)
- Prendre un rectangle avec un rapport d'aspect le plus proche d'un rapport prédéfini (c.-à-d. 4: 3)
Ma première réflexion sur l'algorithme est la suivante:
- Calculer la transformation de distance de la forme et trouver son centre de masse
- Agrandir la zone carrée alors qu'elle ne contient que des pixels de forme
- Agrandir le rectangle (à l'origine un carré) en largeur ou en hauteur alors qu'il ne contient que des pixels de forme.
Cependant, je pense qu'un tel algorithme serait lent et ne conduirait pas à une solution optimale.
Aucune suggestion?