← Tous les exercices
Un bord par une soustraction, sur une ligne
Partie 1 · ★
Sur une ligne de 6 pixels [0, 0, 0, 1, 1, 1] (0 = sombre, 1 = clair), le bord est entre les pixels 3 et 4. Pour savoir si un pixel touche un bord, on compare ses deux voisins : droite − gauche. C'est une somme pondérée comme en J1, avec les poids w = [-1, 0, 1] posés sur la fenêtre de 3 pixels.
Calcule d'abord la réponse autour du pixel n° 3, puis fais glisser la fenêtre d'un pixel à la fois (les pixels 1 et 6 n'ont qu'un voisin : pas de réponse). Enfin, refais le même calcul, avec les mêmes poids, sur la ligne d'un patient dont l'organe est un pixel plus à droite.
ligne = [0, 0, 0, 1, 1, 1] w = [-1, 0, 1] fenetre = ligne[1:4] reponse_3 = sum(x * p for x, p in zip(___, w)) def convolution_ligne(ligne, w): return [sum(x * p for x, p in zip(ligne[i - 1:i + 2], w)) for i in range(___, len(ligne) - 1)] reponses = convolution_ligne(ligne, w) reponses_decalees = convolution_ligne([0, 0, 0, 0, 1, 1], ___)
Ctrl/⌘+Entrée