Aide dm

quanta

Aide dm

Message par quanta » 15 avr. 2016 00:06

bonjour a tous,
je bloque sur une petite question sur la manipulation d'image sous python, la question étant la suivante :
Ecrire une fonction affiche_zone(nom_image,h_debut, h_fin,l_debut,l_fin) qui affiche uniquement la zone des pixels correspondant à la fenêtre [hdebut,hfin]x[ldebut,lfin] de l'image nom_image. Et si la zone n'est pas bien définie par rapport à l'image la fonction retourne None.
Il nous dit de penser au slicing mais je vois vraiment pas comment faire.
Merci d'avance ........

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Aide dm

Message par fakbill » 15 avr. 2016 10:11

Est ce que tu sais ouvrir une image et la mettre dans un numpy array?
Est ce que tu as compris ces histoires d'index dans les numpy arrays? du genre M[1:40,2:33]?
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

quanta

Re: Aide dm

Message par quanta » 15 avr. 2016 11:47

Oui oui je sais tres bien ouvrir une image, transformer l'image en un a tableau et un tableau en image, l'indexation disant oui, mais je sais pas comment utiliser tout cela le mettre dans un seul programe qui marche.
voici le début de mon code :
from PIL import Image
import numpy as np
def image_to_tab(nom_image):
global entree
image = Image.open('images_entrees\nom_image')
return np.array(image)

def tab_to_image(tableau,nom_image_sortie,format):
global sortie
image = Image.fromarray(tableau)
image.save('images_sorties\nom_image_sortie, "." ,image_format')

def affiche_from_tab(tab):
image = Image.open()
tab = np.array(image)
img = Image.fromarray(tab)
img.show()

après mon code pour ouvrir l'image ne marche pas je sais vraiment pas pourquoi j'ai mis de antislash car je suis sous windows, je pense ça doit etre question d'emplacement ou quelque chose du genre, j'imagine que je dois utiliser la fonction image_to_tab(nom_image) pour ne pas se retaper le boulot ( j'ai bien vérifié que nom_image est une chaine de charactaire mais marche pas )

quanta

Re: Aide dm

Message par quanta » 15 avr. 2016 15:01

quelqu'un pour m'aider svp ??? :/

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Aide dm

Message par fakbill » 15 avr. 2016 18:40

plus tu cries moi on t'aide...surtout en message privé.
image = Image.open('images_entrees\nom_image') est une mauvaise idée car tu ne donne pas le path. C'est C:\'images_entrees\nom_image ? probablement pas.
si tu mes .\mon_image.jpg alors il faut savoir ce qu'est le "répertoire courant" dans le cadre d'un programme python.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

quanta

Re: Aide dm

Message par quanta » 15 avr. 2016 20:26

Mes sincères excuses si vous aviez senti que je crie c'est loin de là croiez moi, je demande juste votre aide, car je dois rendre le dm demain avant minuit par mail, et je bloque sur la question precedente qui me permetra d'aller plus loin dans le dm.
le Image.open() c'est la fonction python qu'il nous a dit d'utiliser, c'est pour cela je l'ai utilisé.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Aide dm

Message par fakbill » 15 avr. 2016 21:06

Raté.
Je me fiche totalement du fait que tu aies une deadline pour ton DM.
Ce qui m'intéresse c'est de te faire comprendre qqch.

Rappel de base:
Ecrire "mon code ne marche pas" est une erreur de débutant. On copie le message d'erreur EXACT et le code EXACT qu'on a lancé avec, si nécessaire, les variables d'environnement ou tout ce qui peut interagir avec le code (dans la mesure du raisonnable).
Si tu LIS ce message d'erreur, ça va te dire quel est exactement le pb. Le fichier n'est pas là? Il est trouvé mais l'ouverture plante?
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

quanta

Re: Aide dm

Message par quanta » 15 avr. 2016 21:21

Je vois, repartons de 0, voiçi mon " avant code" pour répondre a la question principale :
from PIL import Image
import numpy as np
entree , sortie = 'image_entrees/' , 'images_sorties/'
def image_to_tab(nom_image): # IMAGE EN TABLEAU
global entree
image = Image.open(entree + nom_image)
return np.array(image)

def tab_to_image(tableau,nom_image_sortie,format): # TABLEAU EN IMAGE ENREGISTRE DANS : sorties_images
global sortie
image = Image.fromarray(tableau)
image.save(sortie + nom_image_sortie + "." + image_format)
MESSAGE D ERREUR : ( mon image s'appel Lenna.png)

image_to_tab("Lenna.png")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\taha\Desktop\DM8_INFO\images_entrees\untitled14.py", line 13, in image_to_tab
image = Image.open(entree + nom_image)
File "C:\apps\Anaconda\lib\site-packages\PIL\Image.py", line 1952, in open
fp = __builtin__.open(fp, "rb")
IOError: [Errno 2] No such file or directory: 'image_entrees/Lenna.png'

Et sinon pour la question principale j'ai 0 idées comment utiliser tout ça avec de l'indexation.

Messages : 13

Inscription : 27 févr. 2013 16:45

Profil de l'utilisateur : Élève de lycée

Re: Aide dm

Message par loupi » 15 avr. 2016 23:41

Clic droit sur ton fichier image > Propriétés, tu regardes le chemin complet (emplacement) dans lequel se trouve ton fichier, c'est le chemin\lenna.png que tu dois passer en paramètre à ta fonction.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Aide dm

Message par fakbill » 15 avr. 2016 23:54

Et sinon pour la question principale j'ai 0 idées comment utiliser tout ça avec de l'indexation.
??? ben si tu as compris les index je vois pas le problème. Les index te permettent d'extraire un sous tableau de ton tableau...
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Répondre