Pouvez vous m'expliquer les étapes de cette fonction s'il vous plait, j'y comprend rien.
Pièce jointe 528732
Merci
Version imprimable
Pouvez vous m'expliquer les étapes de cette fonction s'il vous plait, j'y comprend rien.
Pièce jointe 528732
Merci
Salut,
Pour lire du code, il faut avoir une idée de l'algorithme qu'il est supposé implémenté. Et dans ce cas particulier, un peu de recherche sur Internet devrait vous expliquer ce qu'on veut faire et comment. Et connaissant les étapes à réaliser, le code sera bien plus facile à lire.
- W
La fonction photomaton2 reçoit en arguments un image et un nombre de transformations successives
du photomaton à effectuer et qui renvoie l’image transformée.
Salut,
Une fonction "photomaton" naîve ressemblerait à:
Et l'appliquer n fois, s'écrirait:Code:
1
2
3
4
5
6
7
8 def photomaton(img): p, q = img.shape[:2] img2 = np.empty_like(img) for x in range(p): for y in range(q): img2[photomat(x, p), photomat(y, q)] = img[x, y] return img2
Le code de photomaton2 est juste une optimisation qui va éviter d'exécuter n fois:Code:
1
2
3
4 def photomaton1(im, n): for _ in range(n): im = photomaton(im) return im
en ne le faisant qu'une seule fois:Code:
1
2
3
4 for x in range(p): for y in range(q): img2[photomat(x, p), photomat(y, q)] = img[x, y] return img2
après avoir calculé l'image des abscisses/coordonnées une fois pour toutes.Code:
1
2
3 for x in range(p): for y in range(q): img2[ligne[x],colonne[y]) = img[x, y]
- W