Mercurial > ift6266
comparison transformations/Rature.py @ 129:a507adba0ce3
Changes to fit with visualisation
author | Xavier Glorot <glorotxa@iro.umontreal.ca> |
---|---|
date | Thu, 18 Feb 2010 14:43:53 -0500 |
parents | 5d3a7a4e30e9 |
children | 51b531226557 |
comparison
equal
deleted
inserted
replaced
125:5d3a7a4e30e9 | 129:a507adba0ce3 |
---|---|
65 | 65 |
66 self.gauche=self.droite=self.haut=self.bas=-1 #Remet tout a -1 | 66 self.gauche=self.droite=self.haut=self.bas=-1 #Remet tout a -1 |
67 | 67 |
68 self.angle=int(numpy.random.normal(90,100*complexity)) | 68 self.angle=int(numpy.random.normal(90,100*complexity)) |
69 | 69 |
70 self.faire=numpy.random.binomial(1,0.2) ##### 15% d'effectuer une rature ##### | 70 self.faire=numpy.random.binomial(1,0.15) ##### 15% d'effectuer une rature ##### |
71 if next_rature: | 71 if next_rature: |
72 self.faire = 1 | 72 self.faire = 1 |
73 #self.faire=1 #Pour tester seulement | 73 #self.faire=1 #Pour tester seulement |
74 | 74 |
75 self.crop_haut=random.randint(0,17) | 75 self.crop_haut=random.randint(0,17) |
80 self.smooth=5 | 80 self.smooth=5 |
81 elif complexity <= 0.75: | 81 elif complexity <= 0.75: |
82 self.smooth=4 | 82 self.smooth=4 |
83 else: | 83 else: |
84 self.smooth=3 | 84 self.smooth=3 |
85 self.nb_ratures=1+int(numpy.random.rand()*3) | 85 |
86 p = numpy.random.rand() | |
87 if p < 0.5: | |
88 self.nb_ratures= 1 | |
89 else: | |
90 if p < 0.8: | |
91 self.nb_ratures = 2 | |
92 else: | |
93 self.nb_ratures = 3 | |
86 | 94 |
87 #Creation de la "patch" de rature qui sera appliquee sur l'image | 95 #Creation de la "patch" de rature qui sera appliquee sur l'image |
88 if self.faire == 1: | 96 if self.faire == 1: |
89 self.get_size() | 97 self.get_size() |
90 self.get_image_rot() #On fait la "patch" | 98 self.get_image_rot() #On fait la "patch" |
108 crop=grosse[self.haut:self.haut+32,self.gauche:self.gauche+32] | 116 crop=grosse[self.haut:self.haut+32,self.gauche:self.gauche+32] |
109 | 117 |
110 self.get_patch(crop) | 118 self.get_patch(crop) |
111 | 119 |
112 def get_patch(self,crop): | 120 def get_patch(self,crop): |
113 | 121 smooting = numpy.ones((self.smooth,self.smooth)) |
114 | |
115 smooting=numpy.zeros((self.smooth,self.smooth))+1 #Au plus c'est gros, au plus ca rapetisse la ligne | |
116 | |
117 #Il y a deux erosions afin d'avoir un beau resultat. Pas trop large et | 122 #Il y a deux erosions afin d'avoir un beau resultat. Pas trop large et |
118 #pas trop mince | 123 #pas trop mince |
119 trans=scipy.ndimage.morphology.grey_erosion\ | 124 trans=scipy.ndimage.morphology.grey_erosion\ |
120 (crop,size=smooting.shape,structure=smooting,mode='wrap') | 125 (crop,size=smooting.shape,structure=smooting,mode='wrap') |
121 trans1=scipy.ndimage.morphology.grey_erosion\ | 126 trans1=scipy.ndimage.morphology.grey_erosion\ |