Bonjour, je souhaite pouvoir inverser la matrice que j'obtiens a partir d'une image, c'est a dire que lorsque l'on a 0, le 0 se tranforme en et inversement
# creation matrice
fichier=open('bateau.pbm','r')
ligne= fichier_image.readline()
taille = ligne.split(' ')
largeur = int(taille[0])
hauteur = int(taille[1])
image_bateau = [[ 0 ]* largeur for i in range(hauteur)]
for i in range(hauteur):
ligne = fichier_image.readline()
for j in range(largeur):
image_bateau[i][j] = int(ligne[j])
fichier_image.close()
print(image_bateau)
fichier_image.close()
# inversion matrice
for i in range(image_bateau):
if image_cerlce[i] ==1:
image_cercle[i] = 0
print(image_bateau)
pour l'inversion je n'arrive pas trop, bien que je vois le principe. Parcourir les différents listes, et inverser 0 par 1 ou l'inverse
en supposant que ton image_bateau soit une liste à deux dimensions et que tu souhaites retourner la même liste en inversant les 0 et les 1, tu pourrais faire quelque chose comme ca :
for i in range(len(image_bateau)):
for j in range(len(image_bateau[i])):
image_bateau[i][j] = 1 - image_bateau[i][j]
Tu ne peux pas faire range(image_bateau) car un range à besoin d'un entier or tu lui donnes une liste. len() te retourne la taille de la liste donc tout va bien. Deux boucles pour parcourir ta liste étant donné qu'elle est à deux dimension, puis on inverse.
Tu pourrais aussi le faire avec des enumerate mais c'est juste une autre syntaxe, ça ne change rien au principe.
inversion d'une matrice
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.