Mercurial > ift6266
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