File: LOG

package info (click to toggle)
gimp-texturize 1.0-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,152 kB
  • ctags: 1,074
  • sloc: sh: 3,541; cpp: 793; ansic: 752; makefile: 105; xml: 4
file content (304 lines) | stat: -rw-r--r-- 15,605 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
This is a log file created for the "Texturize" plugin for the GIMP.
Since this plugin is the result of a project for a Computer Vision
course in a French university (and since its LOG file shouldn't be useful
for anybody except the two students who worked on this project), this
file is written in French.

Ceci est le fichier de LOG de la cration du greffon "Texturize". Les
changements sont dans l'ordre chronologique inverse.

############################                ###########################
############################   2005/02/02   ###########################
############################                ###########################
+* remise  Renaud Keriven

+ Petits nettoyages et export en ps. On dispose de 94 colonnes.
Traduction de quelques commentaires en anglais.

############################                ###########################
############################   2005/02/01   ###########################
############################                ###########################

+* Ralisation de la page web ddie au plugin.

+ Nettoyage global du code (versions prcdentes, dbuggage).

* Finalisation de la traduction en franais.

+ Nettoyage de graphcut.cpp. Les lignes sont moins longues
(mais toujours plus que 80 caractres).

############################                ###########################
############################   2005/01/31   ###########################
############################                ###########################

* On affiche un message d'erreur quand on rencontre une image avec une
couche alpha (au lieu de traiter l'image tout de mme, incorrectement).

* Retour  la version prcdente de la barre de progression.

+* La page web du plugin commence  s'toffer de quelques explications,
d'exemples et d'une capture d'cran.

+ Le patch et l'image final sont dsormais des guchar*
(et non des guchar***). Le greffon tourne environ 5 fois plus vite.
J'ai donc enlev la recommandation d'aller boire un caf :-)

+ Le poids d'une arrte tient compte du gradient local : le greffon
coupe maintenant prfrentiellement le long des bords des objets.

+ L'image finale n'est plus initialise en blanc. Le code est toujours
prsent pour les prochaines sessions de dbuggage.

############################                ###########################
############################   2005/01/30   ###########################
############################                ###########################

+ La barre de progression est plus rgulire (on utilise l'ordonne du
dernier pixel rempli au lieu du pourcentages de pixels remplis).

############################                ###########################
############################   2005/01/29   ###########################
############################                ###########################

+ La coupe min tient dsormais compte des anciennes coupes, mme sur la
premire passe (remplissage de l'image avant de chercher  cacher les
mauvaises coutures).

+ rempli est maintenant un guchar** (et non un int**).

+ Nettoyage de offset.c.

############################                ###########################
############################   2005/01/27   ###########################
############################                ###########################

+ J'ai (pniblement) ajout la dtermination de la coupe de poids
minimal. La construction des sommets est une petite horreur de gestion
des indices si l'on tente de rester propre.

+ Corrig un bug pour que la taille par dfaut de la nouvelle image soit
par dfaut 2 fois la taille de l'image initiale, mme si on ne touche
pas  la bote de dialogue.

############################                ###########################
############################   2005/01/25   ###########################
############################                ###########################

+ Rationalisation des noms des variables. Celles concernant l'image
d'origine (le "patch") se terminent par _p, celle concernant l'image
finale par _i.
Corrig le bug qui faisait coller les patch du haut tous  la mme
ordonne (ie colls contre le bord). Maintenant ils peuvent dborder.

+* Journe de travail  deux physiquement  ct. Nettoyages divers dans
le code.

############################                ###########################
############################   2005/01/18   ###########################
############################                ###########################

* C'est bon, l'offset marche ! J'ai aussi implment la mthode de JB
qui consiste non plus  remplir l'image ligne par ligne mais  remplir
toujours  partir du pixel vide le plus en haut  gauche :
effectivement, a marche mieux ! Bon, on approche du but, mais il reste
encore les graph cut  implmenter (ou plutt faire le lien avec le code
dj disponible) et essayer de se souvenir des coutures dj faites
(a, ce sera le plus chaud).

############################                ###########################
############################   2005/01/16   ###########################
############################                ###########################

* J'ai commenc  implmenter la fonction d'offset (ajout du fichier
offset.c). C'est un calcul bte et mchant de similarit entre deux
images (somme des diffrences de chaque couple de pixel, en valeur
absolue). Mais il y a pas mal de sous-cas  traiter pour vrifier qu'on
ne fait pas de segmentation fault, qu'on ne sort pas de l'image, etc.

############################                ###########################
############################   2005/01/15   ###########################
############################                ###########################

* Voil,  ce stade j'ai un greffon qui ne fait rien de super intressant
(il se contente de rpter l'image de dpart jusqu' remplir la nouvelle
image) mais dont le rsultat est propre, qui marche aussi pour de trs
grandes images et qui affiche une belle barre de progression. Demain,
j'essaierai de trouver du temps pour rendre la fonction "offset" plus
intressante (calcul des corrlations, ie du produit de convolution, en
fait).

* La fonction gimp_pixel_rgn_set_rect, qui sert  placer une zone de
mmoire dans un rectangle de l'image, n'est pas trs fute : on lui dit
quel rectangle de l'image de destination il faut mettre  jour, mais si
la zone de mmoire n'a pas exactement la mme taille, il essaie quand
mme de placer tous les pixels et a fait du coup des effets bizarres
(les sortes de distorsions que j'observais tout  l'heure). Il faut donc
 chaque fois tronquer la zone de mmoire en fonction de la zone de
l'image de destination qu'on va occuper. C'est rpar.

* J'ai ajout une barre de progression qui renseigne sur le traitement
de l'image : a fait plus classe :)

* La plupart des fonctions utiles sont poses, mais encore  l'tat
d'esquisse. Ce que fait le greffon pour l'instant, c'est simplement
recopier l'image de dpart dans la nouvelle jusqu' remplissage total.
Il y a des distorsions curieuses  droit de l'image, il faut que je
rgle a. Prochaine grande tape : faire une fonction de calcul d'offset
intelligente.

* Maintenant que les basses sont bien poses et que je comprends comment
interagir avec le Gimp, a devient un peu plus amusant :) Je commence 
poser les bases des fonctions dont j'aurai besoin, les diffrentes
boucles, l'architecture du projet.

* En plus de placer l'image de dpart en (0,0), je colore le reste en
tout blanc pour partir sur un bon point de dpart (sinon les autres
pixels sont alatoires et c'est un peu dgueu). a t l'occasion de
comprendre ( la dure, et avec moult essais/erreurs) comment sont
organises les structures de donnes qui reprsentent des images : o
sont les deux coordonnes, o sont les canaux de couleur. Bref, encore
une fois ce n'tait pas du tout, mais vraiment pas du tout document ni
expliqu nulle part, donc il m'a fallu un certain nombre d'essais et
d'images immondes pour comprendre comment a marchait, et avant
d'arriver  faire du blanc bien pur !

* J'ai trouv le problme : je travaillais sur une image GIF,  couleurs
indexes (qui provenait d'ailleurs de la page web de l'article sur
lequel on se base). L'algo serait cens marcher pour tous les types
d'images (je gre un nombre de canaux quelconque), mais ici a ne
marche pas, je ne sais pas pourquoi. J'ai donc mis un message d'erreur
quand on essaie d'appliquer le greffon sur une image  couleurs indexes,
je ne vois pas comment rsoudre le problme pour l'instant.

* J'ai donc bien une nouvelle image qui s'ouvre, mais j'ai maintenant
des problmes pour rcuprer les donnes de l'image de dpart et les
refourguer  la nouvelle. Plus prcisment, j'arrive  rcuprer les
donnes (en les affichant avec des printf, c'est bon), mais je n'arrive
pas  les remettre dans la nouvelle image. La gestion de la mmoire
n'est vraiment pas trs sympa : si on veut aller chercher les pixels
dans un rectangle de mmoire, c'est  base de tableau[i*taille_ligne +
j*taille_colonne + k] avec k variant de 0 au nombre de canaux (RGB,
etc.). Il y a bien des procdures toutes faites pour lire un
rectangle d'une rgion initialise, et l'crire dans une autre, mais la
gestion de la mmoire derrire est telle que ce n'est vraiment pas
vident de savoir quel type de zone mmoire il faut utiliser pour
stocker ces donnes (a, a marche pour l'instant) et donner  manger 
la procdure d'criture (a, a ne marche pas)... Je sens que je vais
m'emptrer dans les pointeurs et les malloc exotiques :-p

############################                ###########################
############################   2005/01/14   ###########################
############################                ###########################

* Dernire modification de la journe : j'ai finalement choisi de demander 
Gimp d'ouvrir une nouvelle image, au lieu de m'emmerder avec l'image
actuelle. C'tait vraiment une journe galre, j'ai un peu pt les
plombs, et tout a n'est vraiment pas bien document (probablement 
cause de la nouvelle version -- 2.2 -- qui vient de sortir). J'essaierai
de faire un bon tutoriel d'criture d'un greffon Gimp, a manque
*vraiment*. J'ai donc implment mon ide d'ouvrir une nouvelle image
avec directement la bonne taille, c'est un peu plus subtil  coder mais
a marche : pour l'instant une nouvelle image (toute noire) s'ouvre.

* Bon, la compilation remarche (automake, autoconf, etc., c'est bon).
Mais pour une raison que je ne comprends pas, il ne veut absolument pas
me laisser crire en C++ un fichier dj prsent dans l'archive (le
fichier render.c que j'ai essay de renommer en render.cpp), mme en
changeant tout ce qu'il faut dans les Makefile et autre configure.in...
Bon, ben il faudra que je me passe du C++ pour ce fichier-l, j'ai dj
pass trop de temps  essayer de lui faire manger mon render.cpp, sans
succs.

* Les fichiers qui calculent le flot max (ou la coupe de poids min) sont
en C++ alors que le greffon est fait pour tre programm en C. J'ai
pass beaucoup de temps  changer ce qu'il faut (et  comprendre quoi
changer !) dans les fichiers configure.in, Makefile.am, etc. C'est
compliqu ces trucs-l, et automake, autoconf sont encore bien obscurs
pour moi (sans compter le script autogen.sh inclus dans le
template). Bref, pour que a marche chez tout le monde quand on fait
./configure && make && make install, y a toute une machinerie derrire,
trs complexe, et j'ai un peu les doigts coincs dedans :)

* Ce qui est vraiment difficile, c'est qu'aucun des greffons que j'ai
trouvs (y compris tous les greffons livrs avec The Gimp) ne
redimensionnent l'image de dpart : l'image d'arrive a exactement la
mme taille. Or c'est la principale difficult  laquelle je suis
confront : le redimensionnement apporte des problmes d'initialisation
des "drawable" que j'essaie de rsoudre par plusieurs moyens
(agrandissement de l'image pour ensuite effacer des pixels,
agrandissement de l'image mais en gardant l'original dans un coin --
dans ce dernier cas j'ai un mal fou  demander  Gimp de me laisser
crire dans les autres pixels, etc.), mais pour l'instant sans succs.

############################                ###########################
############################   2005/01/13   ###########################
############################                ###########################

* J'ai pass pas mal de temps pour comprendre comment marchaient les
choses sous Gimp (et je n'ai pas fini !). Bref, j'ai enfin russi 
demander  mon greffon de redimensionner l'image (il faut aller fouiller
dans les librairies de Gimp, c'est mal document, la doc correspond 
une version antrieure et plein de trucs ont chang depuis... bref ce
n'est pas vident).


############################                ###########################
############################   2005/01/11   ###########################
############################                ###########################

* Je cre le fichier "texturize.h" pour regrouper le prototype de toutes
les fonctions et les trucs communs  tous les fichiers source (en
particulier pour faire le lien entre le greffon lui-mme et l'algo de
graph cut que j'utilise).

* Il y a aussi les problmes d'internationalisation : dans le
sous-dossier "po", il y a la traduction de tous les messages dans plein
de langues. Je vais faire l'anglais (fichier de dpart) et le franais.

* Je modifie la fentre de dialogue de base (avec plein d'exemples de
curseurs) pour mettre juste la taille de la nouvelle image et poser la
bonne question. J'enlve les dfinitions de variables inutiles.

* J'inclus les sources de "maxflow" (algo de calcul du flot max) dans
le rpertoire du greffon ; je mets les deux sous-rpertoires
(adjacency-list et forward-star) et je fais des liens symboliques vers
les lments de adjacency-list (c'est le plus gourmand en RAM, mais le
plus rapide). Je compile... Ah, c'est du code C++ donc j'installe le
paquet g++, je recompile... C'est bon, il fallait ajouter la ligne
"AC_PROG_CXX" au fichier configure.in. Je ne pige pas trop comment
fonctionne automake, configure, etc. mais maintenant que a marche, je
ne touche plus :)

############################                ###########################
############################   2005/01/07   ###########################
############################                ###########################

* Pour commencer  me familiariser avec la structure des fichiers
main.c, render.c, interface.c, etc., je change dj les textes de
faade (nom du greffon, nom des auteurs, etc.). Je commence  voir un
peu comment a marche.

* a ne fonctionne toujours pas (./config rle : ma version de GIMP est
trop ancienne). J'installe donc tous ces paquets (et gimp) en version
unstable. Bon, a va mieux : j'ai fait ./configure, make, sudo make
install et tout va bien. Le nouveau greffon "plug-in template" apparat
bien dans la loiste des plug-ins disponibles, dans le GIMP, avec un
exemple de bote de dialogue trs bien fait.

* Installation de plusieurs paquets lis au dveloppement sous GIMP (je
ne sais pas lesquels sont vraiment utiles mais a ne marchait pas dans
au moins l'un d'entre eux) :

sudo apt-get install libgimp2.0-dev libglib2.0-dev libgtk1.2-dev
				libgtkgl2.0-dev

* J'ai commenc par changer la licence (donne dans le fichier COPYING)
en la GPL, un peu plus adapte  notre projet, il me semble.

* J'ai donc tlcharg le "plugin template" depuis le site officiel des
dveloppeurs de GIMP.


 LocalWords:  guchar dbuggage offset.c ie JB fault gimp rgn rect
 LocalWords:  printf RGB malloc