Bonjour,
J'ai 3 noms de matrices que je veux passer en paramètre d'entrée pour une procédure qui chargera les valeurs binaires des pixels d'une image précise par matrice. Seulement, je n'arrive pas a passer uniquement les noms, et même en définissant mes variables avant, je ne sais pas comment modifier mes variables en globale dans la procédure, car si je met un "global Matrice" il me dit que Matrice ne peut pas être global et local... logique...
Et si je met un "global Map, Pattern_1, Pattern2", une fois sorti de la procédure, mes variables restent inchangées par rapport a leur déclaration de base...

Pour moi, l'idéal serait que les matrices soit passées vides et redimensionnées (grâce a la taille de l'image qui l'accompagne) dans la procédure et non avant!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# -*- coding:Utf-8 -*-
import Tkinter
import os
import PIL
import Image, ImageTk
from numpy import *
 
 
def LOAD(PictureName, Matrice):
 
    #<--Preparation des données image -->
    #chargement de l'image
    Img = Image.open(PictureName)
 
    #couleur -> niveau de gris
    Img = Img.convert("L")
 
    #donnees image 
    DataImg = list(Img.getdata())
 
    #<-- chargement des listes de données binaires -->
    #Taille image : 
    Width, Height = Img.size
 
    #Initialisation de la matrice --> tous les pixels sont blanc.
    Matrice = ones((Width,Height))
 
    #Remplissage de la matrice de données binaires:
    Threshold = 200 #Valeur au dessous de laquelle le pixel sera considéré comme noir (0)
    Pixel = 0 #indice de parcours du DataImg pixel par pixel
    for j in range(0,Height,1):
        for i in range(0,Width,1):
            if DataImg[Pixel] < Threshold:
                Matrice[i,j] = 0 #le pixel passe noir
            Pixel += 1
    print Matrice
 
Side = 35
Pattern_1, Pattern_2 = ones((Side,Side)), ones((Side,Side))
Map = ones((250,200))
 
LOAD("patt.bmp", Map)
LOAD("patt1.bmp", Pattern_1)
LOAD("patt2.bmp", Pattern_2)
Merci.