You are not logged in.
The forum to cure all your computer anxieties
Voilà une proposition pour Mini-projet : manipulation d'images
8 actions possibles :
- "vers la gauche" => tourne l'image vers la gauche
- "vers la droite" => tourne l'image vers la droite
- "obscurcir" => évident
- "éclaircir" => évident
- "contours blancs" => fond de couleur avec contours blanc
- "contours noirs" => fond blanc avec contours de couleur
- "inversion" => foncé devint clair et clair devient foncé
- "" ou "(erreur/mal écrit)" => image normal
5 couleurs possibles :
- "noir" => noir et blanc
- "vert" => vert
- "rouge" => rouge
- "bleu" => bleu
- "" ou "(erreur/mal écrit)" => rose
def OnJoueAvecLesImagesEtSurtoutCelleD_Ada(url, action:str, color_choisie
:str)->None:
"""
url:str
action:str
8 actions possibles :
- "vers la gauche" => tourne l'image vers la gauche
- "vers la droite" => tourne l'image vers la droite
- "obscurcir" => évident
- "éclaircir" => évident
- "contours blancs" => fond de couleur avec contours blanc
- "contours noirs" => fond blanc avec contours de couleur
- "inversion" => foncé devint clair et clair devient foncé
- "" ou "(erreur/mal écrit)" => image normal
color_choisie:str
5 couleurs possibles :
- "noir" => noir et blanc
- "vert" => vert
- "rouge" => rouge
- "bleu" => bleu
- "" ou "(erreur/mal écrit)" => rose
"""
urlretrieve(url, "image.jpg")
image_recue = plt.imread("image.jpg").tolist()
im = [[px[0] for px in ligne] for ligne in image_recue]
nb_cols = len(im[0])
nb_lignes = len(im)
couleur = "gray" if color_choisie == "noir" else "Reds_r" if color_choisie == "rouge" else "Greens_r" if color_choisie == "vert" else "Blues_r" if color_choisie == "bleu" else "pink"
if action == "vers la gauche":
image = [[im[j][i] for j in range(nb_lignes)] for i in range(nb_cols)]
plt.imshow(image, cmap = couleur)
plt.show()
return None
elif action == "vers la droite":
image = [[im[nb_lignes -1 -j][nb_cols -1 - i] for j in range(nb_lignes)] for i in range(nb_cols)]
plt.imshow(image, cmap = couleur)
plt.show()
return None
elif action == "obscurcir":
image = [[im[i][j] - 100 if im[i][j] > 100 else 0 for j in range(nb_cols)] for i in range(nb_lignes)]
plt.imshow(image, cmap = couleur)
plt.show()
return None
elif action == "éclaircir":
image = [[im[i][j] + 100 if im[i][j] < 155 else 255 for j in range(nb_cols)] for i in range(nb_lignes)]
plt.imshow(image, cmap = couleur)
plt.show()
return None
elif action == "inversion couleur":
image = [[255 - im[i][j] for j in range(nb_cols)] for i in range(nb_lignes)]
plt.imshow(image, cmap = couleur)
plt.show()
return None
elif action == "contours foncés":
image = [[255 - int(math.sqrt( ( im[i][j*1]-im[i][j-1] )**2 + ( im[i+1][j]-im[i-1][j] )**2 )//1) for j in range(1,nb_cols-1)] for i in range(1,nb_lignes-1)]
plt.imshow(image, cmap = couleur)
plt.show()
return None
elif action == "contours blancs":
image = [[int(math.sqrt( ( im[i][j*1]-im[i][j-1] )**2 + ( im[i+1][j]-im[i-1][j] )**2 )//1) for j in range(1,nb_cols-1)] for i in range(1,nb_lignes-1)]
plt.imshow(image, cmap = couleur)
plt.show()
return None
else:
plt.imshow(im, cmap = couleur)
plt.show()
return None
title = "On s'amuse avec les images"
url = eg.enterbox("Url de l'image", title)
msg = "Quelle action souhaitez vous faire ?"
choices = ["vers la gauche", "vers la droite", "obscurcir", "éclaircir", "inversion couleur", "contours blancs", "contours foncés", "rien"]
action = eg.choicebox(msg, title, choices)
msg = ""
choices = ["rouge", "vert", "bleu", "noir", "rose"]
couleur = eg.choicebox(msg, title, choices)
OnJoueAvecLesImagesEtSurtoutCelleD_Ada(url, action, couleur)
mis à jour, interface easygui
Last edited by Pacôme Giraudeau (09-Jan-2020 15:05:41)
Offline
- "obscurcir" => évident
- "éclaircir" => évident
Pas si évident que ça....Il faut que le changement de tonalité soit uniforme. Mettre en noir les niveau inférieurs à 100 et baissser de 100 les autres est discontinu. Il faut trouver un moyen différent...non linéaire.
Offline
Modifié : interface disponible easygui
Offline