Variable Globale et paramètre
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:
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.