annotate data_generation/transformations/Rature.py @ 266:1e4e60ddadb1

Merge. Ah, et dans le dernier commit, j'avais oublié de mentionner que j'ai ajouté du code pour gérer l'isolation de différents clones pour rouler des expériences et modifier le code en même temps.
author fsavard
date Fri, 19 Mar 2010 10:56:16 -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