verification code erosion - C - Programmation
Marsh Posté le 28-03-2013 à 13:47:36
Je ne sais pas ce que tu appelles une érosion, mais je trouve surprenant que tu ne modifies tes données que dans des conditions aussi strictes.
C'est probablement assez peu important dans ton cas ... Mais tu devrais prendre l'habitude d'avoir ta boucle intérieure sur width et ta boucle extérieure sur height. Sauf cas particulier, c'est ce qui te donnera les meilleures performances et ca ne change rien à ton algo.
Marsh Posté le 28-03-2013 à 15:39:10
une érosion est un "calcul" morphologique sur image binaire
qui diminue le contour de tout objet à 1 de 1 pixel expliqué brièvement c'est sa
j'ai oublier de précisé pour ceux qui connaisse j'utilise un élément structurant carré en 4 connexité
et pourquoi le fait d'avoir la boucle width à l'intérieur augmenterai les performance ?
Marsh Posté le 28-03-2013 à 16:34:48
icemake a écrit : une érosion est un "calcul" morphologique sur image binaire |
C'est toujours génial ce jargon pour dire que tes pixels sont carrés ( ) et que tu ne t'occupes pas des diagonales.
Pour ce qui est de te donner une réponse quand à la qualité de ton algo, j'imagine que ca va dépendre comment tu remplis ton .moy dans ta structure de données, vu qu'au final, c'est ce moy qui sert de marqueur pour savoir si tu dois mettre en blanc, en noir, ou laisser tel quel.
Accessoirement, vu ce que tu décris, tu voudras sans doute aussi un seuil plus large que 1, mais j'imagine que pour l'exemple ca importe peu.
icemake a écrit : et pourquoi le fait d'avoir la boucle width à l'intérieur augmenterai les performance ? |
C'est plus sympa pour le cache de ton processeur de traiter ligne par ligne que colonne par colonne parce qu'apparamment, tes pixels sont organisés par ligne. Ca évite à ton processeur de faire trop d'allers et retours en mémoire.
Marsh Posté le 28-03-2013 à 16:54:35
ok d'accord
oui je le reduit pour la ragrandir apres ce qui normalement me permettra de separer les objet collés
Citation : C'est plus sympa pour le cache de ton processeur de traiter ligne par ligne que colonne par colonne parce qu'apparamment, tes pixels sont organisés par ligne. Ca évite à ton processeur de faire trop d'allers et retours en mémoire. |
a ok je me coucherai mais bete ce soir ^.^
Marsh Posté le 28-03-2013 à 17:27:34
Aussi, tu feras attention : ta méthode ne gère pas les bordures de ce qu'on en voit. Après, tu as peut-être pré-élargi ton image de deux pixels pour gérer ca de manière transparente pour l'algo.
Edit : au passage, c'est typiquement le genre d'algo que tu dois pouvoir tester facilement sur tous tes cas critiques, c'est probablement mieux que de ne reposer que sur une relecture de code
Marsh Posté le 29-03-2013 à 08:54:45
oui j'ai déjà quelque chose une autre fonction qui traite les bordure avant de faire sa
Marsh Posté le 28-03-2013 à 11:55:49
bonjour,
je voudrais savoir si pour vous ce code fait bien une érosion