annotate data_generation/transformations/Rature.py @ 347:9685e9d94cc4

base class for an rbm
author goldfinger
date Mon, 19 Apr 2010 08:16:56 -0400
parents 1f5937e9e530
children
rev   line source
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
1 #!/usr/bin/python
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
2 # coding: utf-8
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
3
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
4 '''
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
5 Ajout d'une rature sur le caractère. La rature est en fait un 1 qui recoit une
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
6 rotation et qui est ensuite appliqué sur le caractère. Un grossissement, puis deux
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
7 erosions sont effectuees sur le 1 afin qu'il ne soit plus reconnaissable.
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
8 Il y a des chances d'avoir plus d'une seule rature !
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
9
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
10 Il y a 15% d'effectuer une rature.
75
9e5463ebd044 Diminution de la proba de faire une rature, c'est 15% maintenant
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 63
diff changeset
11
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
12 Ce fichier prend pour acquis que les images sont donnees une a la fois
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
13 sous forme de numpy.array de 1024 (32 x 32) valeurs entre 0 et 1.
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
14
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
15 Sylvain Pannetier Lebeuf dans le cadre de IFT6266, hiver 2010
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
16
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
17 '''
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
18
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
19 import numpy, Image, random
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
20 import scipy.ndimage.morphology
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
21 from pylearn.io import filetensor as ft
75
9e5463ebd044 Diminution de la proba de faire une rature, c'est 15% maintenant
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 63
diff changeset
22
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
23
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
24 class Rature():
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
25
147
51b531226557 Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 129
diff changeset
26 def __init__(self,seed=1256):
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
27 self.angle=0 #Angle en degre de la rotation (entre 0 et 180)
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
28 self.numero=0 #Le numero du 1 choisi dans la banque de 1
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
29 self.gauche=-1 #Le numero de la colonne la plus a gauche contenant le 1
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
30 self.droite=-1
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
31 self.haut=-1
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
32 self.bas=-1
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
33 self.faire=1 #1=on effectue et 0=fait rien
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
34
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
35 self.crop_haut=0
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
36 self.crop_gauche=0 #Ces deux valeurs sont entre 0 et 31 afin de definir
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
37 #l'endroit ou sera pris le crop dans l'image du 1
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
38
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
39 self.largeur_bande=-1 #La largeur de la bande
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
40 self.smooth=-1 #La largeur de la matrice carree servant a l'erosion
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
41 self.nb_ratures=-1 #Le nombre de ratures appliques
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
42 self.fini=0 #1=fini de mettre toutes les couches 0=pas fini
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
43 self.complexity=0 #Pour garder en memoire la complexite si plusieurs couches sont necessaires
147
51b531226557 Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 129
diff changeset
44 self.seed=seed
51b531226557 Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 129
diff changeset
45
155
7640cb31cf1f Enlevé les re-seed constants, interfère avec les autres modules
boulanni <nicolas_boulanger@hotmail.com>
parents: 147
diff changeset
46 #numpy.random.seed(self.seed)
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
47
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
48 f3 = open('/data/lisa/data/ift6266h10/un_rature.ft') #Doit etre sur le reseau DIRO.
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
49 #f3 = open('/home/sylvain/Dropbox/Msc/IFT6266/donnees/un_rature.ft')
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
50 #Il faut arranger le path sinon
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
51 w=ft.read(f3)
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
52 f3.close()
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
53 self.d=(w.astype('float'))/255
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
54
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
55 self.patch=self.d[0].reshape((32,32)) #La patch de rature qui sera appliquee sur l'image
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
56
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
57 def get_settings_names(self):
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
58 return ['angle','numero','faire','crop_haut','crop_gauche','largeur_bande','smooth','nb_ratures']
147
51b531226557 Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 129
diff changeset
59
51b531226557 Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 129
diff changeset
60 def get_seed(self):
51b531226557 Rajout d'un seed random et d'une fonction get_seed
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 129
diff changeset
61 return self.seed
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
62
125
5d3a7a4e30e9 little changes in Rature and occlusion to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 121
diff changeset
63 def regenerate_parameters(self, complexity,next_rature = False):
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
64
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
65
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
66 self.numero=random.randint(0,4999) #Ces bornes sont inclusives !
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
67 self.fini=0
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
68 self.complexity=complexity
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
69
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
70 if float(complexity) > 0:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
71
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
72 self.gauche=self.droite=self.haut=self.bas=-1 #Remet tout a -1
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
73
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
74 self.angle=int(numpy.random.normal(90,100*complexity))
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
75
129
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
76 self.faire=numpy.random.binomial(1,0.15) ##### 15% d'effectuer une rature #####
125
5d3a7a4e30e9 little changes in Rature and occlusion to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 121
diff changeset
77 if next_rature:
5d3a7a4e30e9 little changes in Rature and occlusion to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 121
diff changeset
78 self.faire = 1
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
79 #self.faire=1 #Pour tester seulement
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
80
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
81 self.crop_haut=random.randint(0,17)
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
82 self.crop_gauche=random.randint(0,17)
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
83 if complexity <= 0.25 :
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
84 self.smooth=6
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
85 elif complexity <= 0.5:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
86 self.smooth=5
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
87 elif complexity <= 0.75:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
88 self.smooth=4
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
89 else:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
90 self.smooth=3
129
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
91
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
92 p = numpy.random.rand()
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
93 if p < 0.5:
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
94 self.nb_ratures= 1
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
95 else:
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
96 if p < 0.8:
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
97 self.nb_ratures = 2
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
98 else:
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
99 self.nb_ratures = 3
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
100
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
101 #Creation de la "patch" de rature qui sera appliquee sur l'image
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
102 if self.faire == 1:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
103 self.get_size()
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
104 self.get_image_rot() #On fait la "patch"
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
105
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
106 else:
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
107 self.faire=0 #On ne fait rien si complexity=0 !!
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
108
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
109 return self._get_current_parameters()
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
110
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
111
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
112 def get_image_rot(self):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
113 image2=(self.d[self.numero].reshape((32,32))[self.haut:self.bas,self.gauche:self.droite])
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
114
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
115 im = Image.fromarray(numpy.asarray(image2*255,dtype='uint8'))
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
116
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
117 #La rotation et le resize sont de belle qualite afin d'avoir une image nette
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
118 im2 = im.rotate(self.angle,Image.BICUBIC,expand=False)
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
119 im3=im2.resize((50,50),Image.ANTIALIAS)
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
120
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
121 grosse=numpy.asarray(numpy.asarray(im3)/255.0,dtype='float32')
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
122 crop=grosse[self.haut:self.haut+32,self.gauche:self.gauche+32]
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
123
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
124 self.get_patch(crop)
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
125
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
126 def get_patch(self,crop):
129
a507adba0ce3 Changes to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 125
diff changeset
127 smooting = numpy.ones((self.smooth,self.smooth))
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
128 #Il y a deux erosions afin d'avoir un beau resultat. Pas trop large et
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
129 #pas trop mince
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
130 trans=scipy.ndimage.morphology.grey_erosion\
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
131 (crop,size=smooting.shape,structure=smooting,mode='wrap')
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
132 trans1=scipy.ndimage.morphology.grey_erosion\
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
133 (trans,size=smooting.shape,structure=smooting,mode='wrap')
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
134
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
135
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
136 patch_img=Image.fromarray(numpy.asarray(trans1*255,dtype='uint8'))
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
137
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
138 patch_img2=patch_img.crop((4,4,28,28)).resize((32,32)) #Pour contrer les effets de bords !
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
139
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
140 trans2=numpy.asarray(numpy.asarray(patch_img2)/255.0,dtype='float32')
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
141
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
142
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
143 #Tout ramener entre 0 et 1
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
144 trans2=trans2-trans2.min() #On remet tout positif
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
145 trans2=trans2/trans2.max()
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
146
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
147 #La rayure a plus de chance d'etre en bas ou oblique le haut a 10h
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
148 if random.random() <= 0.5: #On renverse la matrice dans ce cas
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
149 for i in xrange(0,32):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
150 self.patch[i,:]=trans2[31-i,:]
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
151 else:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
152 self.patch=trans2
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
153
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
154
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
155
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
156
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
157 def get_size(self):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
158 image=self.d[self.numero].reshape((32,32))
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
159
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
160 #haut
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
161 for i in xrange(0,32):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
162 for j in xrange(0,32):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
163 if(image[i,j]) != 0:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
164 if self.haut == -1:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
165 self.haut=i
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
166 break
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
167 if self.haut > -1:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
168 break
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
169
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
170 #bas
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
171 for i in xrange(31,-1,-1):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
172 for j in xrange(0,32):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
173 if(image[i,j]) != 0:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
174 if self.bas == -1:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
175 self.bas=i
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
176 break
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
177 if self.bas > -1:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
178 break
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
179
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
180 #gauche
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
181 for i in xrange(0,32):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
182 for j in xrange(0,32):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
183 if(image[j,i]) != 0:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
184 if self.gauche == -1:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
185 self.gauche=i
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
186 break
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
187 if self.gauche > -1:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
188 break
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
189
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
190 #droite
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
191 for i in xrange(31,-1,-1):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
192 for j in xrange(0,32):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
193 if(image[j,i]) != 0:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
194 if self.droite == -1:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
195 self.droite=i
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
196 break
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
197 if self.droite > -1:
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
198 break
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
199
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
200
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
201 def _get_current_parameters(self):
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
202 return [self.angle,self.numero,self.faire,self.crop_haut,self.crop_gauche,self.largeur_bande,self.smooth,self.nb_ratures]
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
203
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
204 def transform_image(self, image):
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
205 if self.faire == 0: #Rien faire !!
58
fd02fd7e6557 Contraste de rature plus prononce, il y a maintenant rature avec proba=complexity, la clarte et la largeur de la bande ont maintenant une composante aleatoire
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 37
diff changeset
206 return image
fd02fd7e6557 Contraste de rature plus prononce, il y a maintenant rature avec proba=complexity, la clarte et la largeur de la bande ont maintenant une composante aleatoire
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 37
diff changeset
207
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
208 if self.fini == 0: #S'il faut rajouter des couches
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
209 patch_temp=self.patch
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
210 for w in xrange(1,self.nb_ratures):
125
5d3a7a4e30e9 little changes in Rature and occlusion to fit with visualisation
Xavier Glorot <glorotxa@iro.umontreal.ca>
parents: 121
diff changeset
211 self.regenerate_parameters(self.complexity,1)
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
212 for i in xrange(0,32):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
213 for j in xrange(0,32):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
214 patch_temp[i,j]=max(patch_temp[i,j],self.patch[i,j])
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
215 self.fini=1
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
216 self.patch=patch_temp
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
217
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
218 for i in xrange(0,32):
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
219 for j in xrange(0,32):
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
220 image[i,j]=max(image[i,j],self.patch[i,j])
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
221 self.patch*=0 #Remise a zero de la patch (pas necessaire)
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
222 return image
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
223
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
224
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
225 #---TESTS---
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
226
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
227 def _load_image():
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
228 f = open('/home/sylvain/Dropbox/Msc/IFT6266/donnees/lower_test_data.ft') #Le jeu de donnees est en local.
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
229 d = ft.read(f)
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
230 w=numpy.asarray(d[0:1000])
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
231 return (w/255.0).astype('float')
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
232
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
233 def _test(complexite):
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
234 img=_load_image()
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
235 transfo = Rature()
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
236 for i in xrange(0,10):
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
237 img2=img[random.randint(0,1000)]
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
238 pylab.imshow(img2.reshape((32,32)))
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
239 pylab.show()
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
240 print transfo.get_settings_names()
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
241 print transfo.regenerate_parameters(complexite)
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
242 img2=img2.reshape((32,32))
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
243
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
244 img2_trans=transfo.transform_image(img2)
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
245
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
246 pylab.imshow(img2_trans.reshape((32,32)))
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
247 pylab.show()
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
248
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
249
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
250 if __name__ == '__main__':
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
251 from pylearn.io import filetensor as ft
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
252 import pylab
121
4a29910eae93 Maintenant, les ratures sont fabriquees a partir de 1 qui ont ete transformes pas mal. Les ratures peuvent maintenant etre plus d'une. Proba 0.15 d'effectuer une rature
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents: 75
diff changeset
253 _test(1)
37
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
254
5848e88f7a7a Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff changeset
255