Python - Image

Fermé
Info - 19 mars 2022 à 22:16
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 - 21 mars 2022 à 13:28
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).
A voir également:

11 réponses

yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 Ambassadeur 1 557
20 mars 2022 à 08:13
0
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.
0
magouero Messages postés 242 Date d'inscription lundi 9 juillet 2007 Statut Membre Dernière intervention 2 avril 2022 66
20 mars 2022 à 13:47
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 ?


0
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.
0

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
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
20 mars 2022 à 22:01
quelle erreur de syntaxe?
0
sur if et je ne comprend pas comment compléter la fonction symétrie verticale
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
21 mars 2022 à 08:43
Il manque peut-être le
:
à la fin du
if
?
0
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
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
21 mars 2022 à 10:05
Quelle partie de l'exercice ne comprends-tu pas?
Comprends-tu le résultat que tu dois obtenir, comprends-tu ce qu'est une symétrie verticale?
0
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
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
21 mars 2022 à 12:34
fais peut-être un exemple à la main: montre une matrice avant et après transformation par la symétrie.
0
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
0
Désolé, il y avait beaucoup trop de faute d orthographe .

Je n'ai pas ça sous la main la professeur m'a rien donné, mais je vaus essayer de comprendre avec internet, je vous dit
0
Pour moi une symetrie verticale ,c est quand on fait la symetrice d un triangle par rapport à un axe vertical
0
yg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 1 557
21 mars 2022 à 13:28
ici, c'est pas un triangle, c'est une matrice, donc plutôt un rectangle.
0