Bonjour à tous
Je suis en PTSI et j'ai un projet d'info à faire sous Pyzo: faire le contour d'une image. Or voilà le problème:j'ai réussit à coder un truc qui lorsque je l'applique sur une image cela me fait effectivement bien les contours. Or dès que je met une image, avec des nuances, mon code me renvoit la même image sans rien effectuer dessus. C'est pourquoi je pense devoir effectuer un seuillage, enfin je ne sais pas si c'est le bon terme, pour l'image soit "pure".
Pour définir le mot "pur" c'est compliqué parce que même moi je ne comprends pas très bien, mais quand je lance mon programme pour une image faite depuis Paint, que j'ai mis du noir, du rose, du rouge, etc il me rend le contour comme il faut. Mais quand je prends une image un peu plus complexe il me renvoie la même image. Pour que vous compreniez mieux j'ai mis l'énoncé en pièce jointe (de la ligne 1 à la ligne 115).
Et voici mon code actuellement
Merci à tousCode PHP:
import matplotlib.pyplot as plt
import numpy as np
from os import getcwd,chdir
def recupererInfoImage3(nomImage): ## écrire les " " dans le nom de l'image
chdir("blablaabla") #On peut essayer de mettre le répertoire comme une variable dans la fonction
image=plt.imread(nomImage)
nouveau=np.zeros((image.shape) ,int) #On crée un nouveau tableau de même taille que l'image etudiée, il est rempli de 1.
plt.imshow(image)
nl,nc,n=image.shape
#Rajouter ligne 11 "return nouveau"
#return nl, nc, n #Ligne, colonne, n=? il faudra retirer le # après pour découper la fonction en sous fonction
plt.imshow(image)
#Ici commence la fonction BalayageImage(nl,nc,n)
for l in range(0,nc-2): #On balaie les colonnes
for c in range(0,nl-2):#Pour chaque colonne on balaie chaque ligne
if image[c-2,l,0]!=image[c-1,l-1,0]:
nouveau[c-2,l-2,0]=1 #On change le pixel de couleur (il devient blanc, inialement il est noir à cause de ligne8)
plt.imshow(nouveau)
plt.show()
-----