Bonjour,
Ce problème est bien curieux et il n'est pas facile de pouvoir trouver la source du problème par manque d'informations.
Toutefois, j'ai déjà eu l'avantage d'observer ce symptôme par le passé. Il est induit par deux causes possibles:
- algorithmique: Tu as un mauvais algorithme qui est bien programmé.
- implémentationnel: Tu as mal programmé un bon algorithme.
Dans la mesure où tu as déjà longuemment cherché, je partirais plutôt pour la seconde. Si jamais, pour la première, ce serait juste un résultat abhérent comme une image unicolore, floue, avec une rotation de cent-huitante degrés, etc. ce qui n'est pas ton cas.
On sait que puisque c'est au moment du filtrage qu'il y a le problème, on devrait regarder dans la partie du filtrage. Toutefois, comme observé par le professeur, la trop grande périodicité et l'absence d'incohérences-types montre que ce problème non seulement ne fait pas planter, mais induit une perturbation "harmonique". On observe un décalage de 50% = 1/2 pour l'Union Jack qui de proportion 1:2...
Ainsi, si l'algorithme est correct peut-être que son implémentation ne l'est pas. Il est possible que tu fasses un overflow dans l'espace de ton programme. C'est-à-dire que tu débordes en mémoire mais pas trop de telle façon à ne pas planter puis ce débordement influence ton résultat.
Regarde donc à chaque fois que tu changes la taille d'un tableau et à chaque écriture en mémoire par ce tableau. Même au moment de la lecture ! (Donc aussi hors de la fonction de filtrage) En effet, écrire dans le septième élément d'un tableau de 3x2 ou de 6 ne plante que rarement même si on déborde et influence surement le résultat !
Cordialement