Chercher un motif dans une image
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 8 — Matrices de pixels et images
Énoncé
Écrire cherche_motif(motif, img) renvoyant la coordonnée du coin supérieur gauche de la première occurrence exacte de la sous-matrice motif dans img, ou None.
Corrigé
def cherche_motif(motif: list, img: list):
m, q = len(motif), len(motif[0])
n, p = len(img), len(img[0])
for i in range(n - m + 1):
for j in range(p - q + 1):
ok = True
for a in range(m):
for b in range(q):
if img[i + a][j + b] != motif[a][b]:
ok = False
break
if not ok:
break
if ok:
return (i, j)
return None
La complexité dans le pire des cas est en . En pratique, le parcours s'interrompt dès la première anomalie constatée sur un pixel, rendant la recherche très rapide sur des images réelles.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.