Python - Image
Info
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aurai besoin d'aide pour un TP python.
Je dois le rendre lundi, J'ai vraiment d'aide je ne comprend pas.
Merci d'avance
1. Symétrie verticale. On donne le code Python suivant ou L est une liste représentant une image matricielle :
def SymetrieVerticale(L):
hauteur = len(L)
largeur = len(L[0])
for i in range(hauteur):
for j in range(largeur//2):
L[i][j],L[i][largeur-j-1] = ......................................
return L
(a) Pourquoi doit-on effectuer une double boucle ?
(b) Pourquoi le paramètre du range de la ligne 5 est-il largeur//2 ?
(c) Compléter la ligne 6 de façon à avoir en sortie une liste représentant l’image matricielle obtenue à partir de l’image initiale par une symétrie verticale.
2. Symétrie horizontale. Modifier la fonction précédente pour écrire une fonction Symétrie Horizontale prenant en entrée une liste représentant une image matricielle et renvoyant en sortie la liste correspondante à l’image matricielle obtenue après une symétrie horizontale.
3. Noir et Blanc. Écrire une fonction Gris2NB prenant en entrée une liste représentant une image matricielle et renvoyant en sortie la liste définie de la façon suivante : toutes les valeurs de la liste initiale strictement inférieures à 127 sont remplacées par 0 et les autres par 255.
4. Écrire des fonctions permettant d’effectuer des quarts de tour horaire et anti-horaire, ainsi qu’une fonction permettant de sauvegarder
l’image modifiée (pour simplifier on choisira d’écrire une valeur de pixel par ligne).
J'aurai besoin d'aide pour un TP python.
Je dois le rendre lundi, J'ai vraiment d'aide je ne comprend pas.
Merci d'avance
1. Symétrie verticale. On donne le code Python suivant ou L est une liste représentant une image matricielle :
def SymetrieVerticale(L):
hauteur = len(L)
largeur = len(L[0])
for i in range(hauteur):
for j in range(largeur//2):
L[i][j],L[i][largeur-j-1] = ......................................
return L
(a) Pourquoi doit-on effectuer une double boucle ?
(b) Pourquoi le paramètre du range de la ligne 5 est-il largeur//2 ?
(c) Compléter la ligne 6 de façon à avoir en sortie une liste représentant l’image matricielle obtenue à partir de l’image initiale par une symétrie verticale.
2. Symétrie horizontale. Modifier la fonction précédente pour écrire une fonction Symétrie Horizontale prenant en entrée une liste représentant une image matricielle et renvoyant en sortie la liste correspondante à l’image matricielle obtenue après une symétrie horizontale.
3. Noir et Blanc. Écrire une fonction Gris2NB prenant en entrée une liste représentant une image matricielle et renvoyant en sortie la liste définie de la façon suivante : toutes les valeurs de la liste initiale strictement inférieures à 127 sont remplacées par 0 et les autres par 255.
4. Écrire des fonctions permettant d’effectuer des quarts de tour horaire et anti-horaire, ainsi qu’une fonction permettant de sauvegarder
l’image modifiée (pour simplifier on choisira d’écrire une valeur de pixel par ligne).
A voir également:
- Python - Image
- Image iso - Guide
- Citizen code python avis - Accueil - Outils
- Légender une image - Guide
- Reduire taille image - Guide
- Acronis true image gratuit - Télécharger - Sauvegarde
11 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
Je ne comprend pas qu est ce que vous voulez dire par ce lien, j ai essayé de faire les questions mais je n arrive pas à faire les fonction.
Bonjour,
ce que yg veut dire c'est (extrait du lien): "...Détaillez précisément le ou les point(s) qui vous pose(nt) un problème dans votre exercice. Si vous ne savez pas par où commencer, dites-le à ceux qui vous aident sur le forum et ils vous donneront éventuellement des axes de recherche.
Présentez le travail déjà tenté ou expliquez les réflexions menées, ...".
Qui plus est: on va manquer de choses sur ton code. Les indentations sont absentes donc le return par exemple, il appartient à quel élément ? Le premier For ou le 2e ou à la fonction ?
Recolle le code et sélectionne le puis tu choisis python avec la petite flèche vers le bas en haut de l'encadrement de ton texte. (à côté de B S <> )
Autre chose:
L ressemble à quoi ? Un tableau de trucs ? Une chaîne de caractères ?
ce que yg veut dire c'est (extrait du lien): "...Détaillez précisément le ou les point(s) qui vous pose(nt) un problème dans votre exercice. Si vous ne savez pas par où commencer, dites-le à ceux qui vous aident sur le forum et ils vous donneront éventuellement des axes de recherche.
Présentez le travail déjà tenté ou expliquez les réflexions menées, ...".
Qui plus est: on va manquer de choses sur ton code. Les indentations sont absentes donc le return par exemple, il appartient à quel élément ? Le premier For ou le 2e ou à la fonction ?
Recolle le code et sélectionne le puis tu choisis python avec la petite flèche vers le bas en haut de l'encadrement de ton texte. (à côté de B S <> )
Autre chose:
L ressemble à quoi ? Un tableau de trucs ? Une chaîne de caractères ?
def SymetrieVerticale(L):
hauteur = len(L)
largeur = len(L[0])
for i in range(hauteur):
for j in range(largeur//2):
L[i][j],L[i][largeur-j-1] = ......................................
return L
Bonsoir,
d'accord
Pour l 'exerce je ne sais pas comment commencer la fonction symétrie horizontale et puis pour la fonction symétrie verticale je ne sais pas comment compléter la ligne 6, ce sont mes deux gros problèmes.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour la fonction Gris2NB (la question 3), j'ai essayé de faire ça mais j 'ai un erreur de syntaxe et je ne sais pas si c'est bon.
def Gris2NB(fichier):
with open(fichier,'r') as F:
donnees = F.read().split()
del(donnees[0])
largeur = int(donnees.pop(0))
hauteur = int(donnees.pop(0))
del(donnees[0])
L = [[int(données.pop(0)) for colonne in range(largeur)] for ligne in range(longeur)]
if L < 127
replace(127,0)
else L > 127
replace (127,255)
return L
Bonjour,
Oui j ai réussi à corriger l erreur mais pour la fonction symétrie verticale est ce que vous pouvez m aider svp, je ne comprend pas comme la compléter svp
Merci d avance
Oui j ai réussi à corriger l erreur mais pour la fonction symétrie verticale est ce que vous pouvez m aider svp, je ne comprend pas comme la compléter svp
Merci d avance
Ce que je comprend c est que largeur //2 permet de faire la symétrie verticale ça permet de séparer l image en deux et faire le traitement sur chacun.
Ce que je comprend las c est la ligne 6
Ce que je comprend las c est la ligne 6
Je n'ai pas ça sous laain la professeur m'a donné, mais je essayer de comprendre avec internet, j essaye et je vous dit