Bonjour
J'ai développé un système d'affichage de score de flipper virtuel sur DMD (affichage par matrice de LED commandé par un micro contrôleur ESP32) https://www.pincabpassion.net/t14798...ation-du-zedmd, pour avoir un affichage fidèle à un flipper réel.
Maintenant, je programme une amélioration du système de colorisation de cet affichage, car la plupart est en 4 voire 16 couleurs, enfin en dégradé sur 4 ou 16 tons d'une espèce d'orange, et on les passe en 64 voire 256 couleurs.
L'image se présente sous la forme d'un tableau de 128x32 octets (voire, rarement, de 192x64 octets ou 256x64 octets) de valeurs allant donc de 0 à 3 ou de 0 à 16 selon le nombre de tons pour produire ceci:
Maintenant, j'aimerais en temps réel détecter la présence d'un "sprite", c'est-à-dire une sous-image NON RECTANGULAIRE, par exemple défini par 2 rectangles de même taille: un masque de 0 et de 1 qui définit les pixels du rectangle qui font partie du sprite, et l'image de ce sprite avec le même dégradé sur 4 ou 16 couleurs que sur l'image complète. Par exemple, le personnage avec le cadeau ou le chien dans l'image ci-dessus. Sachant qu'il faudra ajouter du clipping, car le sprite peut-être à moitié affiché en sortant de l'image.
Est-ce qu'il y a un algorithme particulièrement efficace pour ce genre de détection en temps réel? Ou faut-il forcément passer par le "je commence ma comparaison en haut à gauche, puis je décale d'un pixel vers la droite et quand j'arrive en fin de ligne je passe à la ligne suivante"?
Merci
David
-----