Mercurial > ift6266
annotate transformations/Rature.py @ 57:6846136b2201
Add a simple test script to see transformation step by step
author | Xavier Glorot <glorotxa@iro.umontreal.ca> |
---|---|
date | Sun, 07 Feb 2010 23:29:05 -0500 |
parents | 5848e88f7a7a |
children | fd02fd7e6557 |
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 |
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 La largeur de la bande ainsi que sa clarté sont definies a l'aide de 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
|
10 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
|
11 |
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 |
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 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
|
20 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
|
21 |
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 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
|
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 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
|
25 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
|
26 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
|
27 self.orientation=0 #0=horizontal, 1=vertical, 2=oblique |
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.clarte=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
|
29 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
30 def get_settings_names(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
|
31 return ['orientation','deplacement','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
|
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
|
33 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
|
34 #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
|
35 #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
|
36 #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
|
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
|
38 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
|
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 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
|
41 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
|
42 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
|
43 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
|
44 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
|
45 self.orientation=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
|
46 |
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.largeur=int(numpy.ceil(complexity*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
|
48 self.clarte=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
|
49 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
50 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
51 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
|
52 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
53 def _get_current_parameters(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
|
54 return [self.orientation,self.largeur,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
|
55 |
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 def transform_image(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
|
57 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
|
58 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
|
59 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
|
60 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
|
61 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
|
62 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
|
63 |
5848e88f7a7a
Ajout de rature verticale, horizontale ou blique sur l'image. Compatible avec testmod.py
SylvainPL <sylvain.pannetier.lebeuf@umontreal.ca>
parents:
diff
changeset
|
64 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
|
65 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
|
66 #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
|
67 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
|
68 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
|
69 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
|
70 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
|
71 for i in xrange(0,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
|
72 for j in xrange(0,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
|
73 image[i+15+self.deplacement,j]=min(1,image[i+15+self.deplacement,j]+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
|
74 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
|
75 |
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 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
|
77 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
|
78 #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
|
79 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
|
80 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
|
81 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
|
82 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
|
83 for i in xrange(0,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
|
84 for j in xrange(0,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
|
85 image[j,i+15+self.deplacement]=min(1,image[j,i+15+self.deplacement]+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
|
86 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
|
87 |
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 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
|
89 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
|
90 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
|
91 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
|
92 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
|
93 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
|
94 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
|
95 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
|
96 image+=D |
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 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
|
98 for j 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
|
99 image[i,j]=min(1,image[i,j]) #Afin de toujours avoir des 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
|
100 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
|
101 |
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 |
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 #---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
|
104 |
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 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
|
106 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
|
107 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
|
108 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
|
109 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
|
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 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
|
112 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
|
113 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
|
114 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
|
115 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
|
116 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
|
117 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
|
118 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
|
119 |
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_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
|
121 |
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_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
|
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 |
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 |
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 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
|
127 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
|
128 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
|
129 _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
|
130 |
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 |