Mercurial > ift6266
annotate transformations/Rature.py @ 73:859ebd7f8754
fixed float32 return on affine_transform
author | Xavier Glorot <glorotxa@iro.umontreal.ca> |
---|---|
date | Wed, 10 Feb 2010 13:02:05 -0500 |
parents | 7949f46b03e0 |
children | 9e5463ebd044 |
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 ''' |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
5 Ajout de rature sur le caractère. La rature peut etre horizontale, verticale |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
6 (dans ces deux cas, l'amplacement de la bande est aleatoire) ou sur la diagonale |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
7 (et anti-diagonale). |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
8 |
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
|
9 La largeur de la bande ainsi que sa clarté sont definies a l'aide de complexity |
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
|
10 et d'une composante aleatoire. |
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
|
11 clarte: 0=blanc et 1=noir |
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 |
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 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
|
14 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
|
15 |
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 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
|
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 ''' |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
19 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
20 import numpy |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
21 import random |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
22 |
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 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
|
24 |
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 def __init__(self): |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
26 self.largeur=2 #Largeur de la bande |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
27 self.deplacement=0 #Deplacement par rapport au milieu |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
28 self.orientation=0 #0=horizontal, 1=vertical, 2=oblique |
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
|
29 self.clarte=0.5 #Clarte de la ligne appliquee |
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
|
30 self.faire=1 #Si ==1, on applique une 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
|
31 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
32 def get_settings_names(self): |
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
|
33 return ['orientation','deplacement','clarte','faire'] |
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
|
34 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
35 def regenerate_parameters(self, complexity): |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
36 #Il faut choisir parmis vertical, horizontal et diagonal. |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
37 #La methode n'est pas exacte, mais un peu plus rapide que generer un int. |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
38 #Complexity n'a rien a voir avec ce choix |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
39 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
40 choix=numpy.random.random() |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
41 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
42 if choix <0.34: |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
43 self.orientation=0 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
44 elif choix <0.67: |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
45 self.orientation=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
|
46 else: |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
47 self.orientation=2 |
63
7949f46b03e0
Bug a propos de complexity=0 corrige
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
58
diff
changeset
|
48 if float(complexity) > 0: |
7949f46b03e0
Bug a propos de complexity=0 corrige
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
58
diff
changeset
|
49 self.largeur=min(32,max(1,int(numpy.ceil(complexity*5)*numpy.random.normal(1,float(complexity)/2)))) |
7949f46b03e0
Bug a propos de complexity=0 corrige
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
58
diff
changeset
|
50 self.clarte=min(1,max(0,complexity*numpy.random.normal(1,float(complexity)/2))) |
7949f46b03e0
Bug a propos de complexity=0 corrige
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
58
diff
changeset
|
51 self.faire=numpy.random.binomial(1,float(complexity)) |
7949f46b03e0
Bug a propos de complexity=0 corrige
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
58
diff
changeset
|
52 else: |
7949f46b03e0
Bug a propos de complexity=0 corrige
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
58
diff
changeset
|
53 self.largeur=0 |
7949f46b03e0
Bug a propos de complexity=0 corrige
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
58
diff
changeset
|
54 self.clarte=0 |
7949f46b03e0
Bug a propos de complexity=0 corrige
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
58
diff
changeset
|
55 self.faire=0 #On ne fait rien !!! |
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 return self._get_current_parameters() |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
58 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
59 def _get_current_parameters(self): |
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
|
60 return [self.orientation,self.largeur,self.clarte,self.faire] |
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
|
61 |
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 def transform_image(self, image): |
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
|
63 if self.faire == 0: |
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
|
64 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
|
65 |
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
|
66 if self.orientation == 0: |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
67 return self._horizontal(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
|
68 elif self.orientation == 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
|
69 return self._vertical(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
|
70 else: |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
71 return self._oblique(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
|
72 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
73 def _horizontal(self,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
|
74 self.deplacement=numpy.random.normal(0,5) |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
75 #On s'assure de rester dans l'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
|
76 if self.deplacement < -16: #Si on recule trop |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
77 self.deplacement = -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
|
78 if self.deplacement+self.largeur > 16: #Si on avance trop |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
79 self.deplacement=16-self.largeur |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
80 for i in xrange(0,self.largeur): |
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
|
81 for j in xrange(0,32): |
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
|
82 image[i+15+self.deplacement,j]=min(1,max(image[i+15+self.deplacement,j],self.clarte)) |
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
|
83 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
|
84 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
85 def _vertical(self,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
|
86 self.deplacement=numpy.random.normal(0,5) |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
87 #On s'assure de rester dans l'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
|
88 if self.deplacement < -16: #Si on recule trop |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
89 self.deplacement = -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
|
90 if self.deplacement+self.largeur > 16: #Si on avance trop |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
91 self.deplacement=16-self.largeur |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
92 for i in xrange(0,self.largeur): |
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
|
93 for j in xrange(0,32): |
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
|
94 image[j,i+15+self.deplacement]=min(1,max(image[j,i+15+self.deplacement],self.clarte)) |
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
|
95 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
|
96 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
97 def _oblique(self,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
|
98 decision=numpy.random.random() |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
99 D=numpy.zeros((32,32)) #La matrice qui sera additionnee |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
100 for i in xrange(int(-numpy.floor(self.largeur/2)),int(numpy.ceil((self.largeur+1)/2))): |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
101 D+=numpy.eye(32,32,i) |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
102 if decision<0.5: #On met tout sur l'anti-diagonale |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
103 D = D[:,::-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
|
104 D*=self.clarte |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
105 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
|
106 for j in xrange(0,32): |
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
|
107 image[i,j]=min(1,max(image[i,j],D[i,j])) |
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 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
|
109 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
110 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
111 #---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
|
112 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
113 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
|
114 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
|
115 d = ft.read(f) |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
116 w=numpy.asarray(d[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
|
117 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
|
118 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
119 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
|
120 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
|
121 transfo = 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
|
122 pylab.imshow(img.reshape((32,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
|
123 pylab.show() |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
124 print transfo.get_settings_names() |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
125 print transfo.regenerate_parameters(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
|
126 img=img.reshape((32,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
|
127 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
128 img_trans=transfo.transform_image(img) |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
129 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
130 pylab.imshow(img_trans.reshape((32,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
|
131 pylab.show() |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
132 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
133 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
134 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
|
135 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
|
136 import pylab |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
137 _test(0.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
|
138 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
139 |