diff transformations/PoivreSel.py @ 88:ab57cd2b252c

Maintenant, il y a 25% de proba d'effectuer le bruitage. De plus, comme cette option demande un nouveau parametre, maintenant le module retourne ses parametres normalement. Plus desoin des 2 fonctions /determined_by_complexity/
author SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
date Thu, 11 Feb 2010 08:55:41 -0500
parents 42e3e2f67626
children 67e655fc1d0b
line wrap: on
line diff
--- a/transformations/PoivreSel.py	Thu Feb 11 05:09:46 2010 -0500
+++ b/transformations/PoivreSel.py	Thu Feb 11 08:55:41 2010 -0500
@@ -8,6 +8,8 @@
 La proportion de bites aleatoires est definit par complexity/5.
 Lorsque cette valeur est a 1 ==> Plus reconnaissable et 0 ==> Rien ne se passe
 
+On a maintenant 25% de chance d'effectuer un bruitage.
+
 Ce fichier prend pour acquis que les images sont donnees une a la fois
 sous forme de numpy.array de 1024 (32 x 32) valeurs entre 0 et 1.
 
@@ -23,26 +25,31 @@
     def __init__(self):
         self.proportion_bruit=0.1 #Le pourcentage des pixels qui seront bruites
         self.nb_chng=10 #Le nombre de pixels changes. Seulement pour fin de calcul
+        self.effectuer=1    #Vaut 1 si on effectue et 0 sinon.
         
     def get_settings_names(self):
-        return []
+        return ['proportion_bruit','effectuer']
     
-    def get_settings_name_determined_by_complexity(self):
-        return ['proportion_bruit']
+##    def get_settings_name_determined_by_complexity(self):
+##        return ['proportion_bruit']
 
     def regenerate_parameters(self, complexity):
         self.proportion_bruit = float(complexity)/5
         self.nb_chng=int(1024*self.proportion_bruit)
         self.changements=random.sample(xrange(1024),self.nb_chng)   #Les pixels qui seront changes
+        self.effectuer =numpy.random.binomial(1,0.25)    ##### On a 25% de faire un bruit #####
         return self._get_current_parameters()
 
     def _get_current_parameters(self):
-        return []
+        return [self.proportion_bruit,self.effectuer]
     
-    def get_parameters_determined_by_complexity(self, complexity):
-        return [self.proportion_bruit]
+##    def get_parameters_determined_by_complexity(self, complexity):
+##        return [self.proportion_bruit]
     
     def transform_image(self, image):
+        if self.effectuer == 0:
+            return image
+        
         image=image.reshape(1024,1)
         for j in xrange(0,self.nb_chng):
             image[self.changements[j]]=numpy.random.random()    #On determine les nouvelles valeurs des pixels changes