Bonsoir,
Pour faire simple, disons que je travaille sur une image bitmap carrée, dont le nombre de pixels par côté est impair. Il existe donc un pixel central.
J'ai un algorithme qui doit, en partant de ce pixel central, faire croître un "sous-carré". J'ai donc au départ un carré faisant un pixel, puis un carré de 3x3 pixels, puis de 5x5 pixels, etc. Cette itération se termine quand est satisfaite une certaine condition sur un des pixels. Par exemple, disons que je m'arrête quand je rencontre un pixel totalement noir.
Je dois en parallèle construire une sous-image extraite de l'image d'origine, par copie des pixels. À la fin de chaque itération, quand les pixels traités par cette itération sont validés, je dois les copier de manière à faire croitre ma nouvelle image.
Note : pour une itération donnée, je ne teste et copie (éventuellement) que les nouveaux pixels (qui forment une bordure). Mon carré est donc "creux".
La question est donc la suivante : quelle est la meilleure structure de données pour l'ajout des pixels validés ? Si on appelle de manière très générique "tableau" cette structure de données, je pense qu'il me faut un tableau de tableaux, chacun pouvant se voir ajouté un élément en début et en fin.
Ainsi, à la fin d'une itération, le tableau externe recevrait deux nouveaux éléments tableau (ligne supérieure et inférieure du cadre de pixels, disons), et chacun des tableaux éléments existant au préalable se verrait de même adjoindre un élément à chaque extrémité (bord gauche et droit pour une ligne donnée).
Quelle est la meilleure structure de données existant dans C#, pour cela ?
Partager