aboutsummaryrefslogtreecommitdiff
path: root/examples/09_vp_calibration/09_vp_calibration_gpu.pd
blob: ed112341ae30e44ac179dd288e2b3d6bf9c82055 (plain)
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
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
#N canvas 347 203 1443 736 10;
#X declare -path ../../;
#X obj 17 13 declare -path ../../;
#X text 7 -11 declare path to be sure externals were found...;
#X obj 9 588 gemwin;
#X obj 839 270 pix_texture;
#X msg 23 555 destroy;
#N canvas 969 388 826 658 compute_perspective 0;
#N canvas 1 110 450 300 format 0;
#X obj 93 7 inlet;
#X obj 118 140 outlet;
#X msg 108 68 \$1 \$4 0 \$7 \$2 \$5 0 \$8 0 0 1 0 \$3 \$6 0 \$9;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 17 474 pd format;
#N canvas 1 86 643 318 mapMatrix 0;
#X obj 110 263 pack 0 0 0 0 0 0 0 0 0;
#X floatatom 110 121 5 0 0 0 - - -, f 5;
#X floatatom 160 121 5 0 0 0 - - -, f 5;
#X floatatom 210 121 5 0 0 0 - - -, f 5;
#X floatatom 110 141 5 0 0 0 - - -, f 5;
#X floatatom 160 141 5 0 0 0 - - -, f 5;
#X floatatom 210 141 5 0 0 0 - - -, f 5;
#X floatatom 110 161 5 0 0 0 - - -, f 5;
#X floatatom 160 161 5 0 0 0 - - -, f 5;
#X floatatom 210 161 5 0 0 0 - - -, f 5;
#X obj 110 285 outlet;
#X obj 110 29 inlet;
#X obj 110 59 unpack 0 0 0 0 0 0 0 0 0;
#X obj 146 195 t b f;
#X obj 189 196 t b f;
#X obj 231 196 t b f;
#X obj 273 195 t b f;
#X obj 316 195 t b f;
#X obj 362 195 t b f;
#X obj 406 195 t b f;
#X obj 456 195 t b f;
#X connect 0 0 10 0;
#X connect 1 0 0 0;
#X connect 2 0 13 0;
#X connect 3 0 14 0;
#X connect 4 0 15 0;
#X connect 5 0 16 0;
#X connect 6 0 17 0;
#X connect 7 0 18 0;
#X connect 8 0 19 0;
#X connect 9 0 20 0;
#X connect 11 0 12 0;
#X connect 12 0 1 0;
#X connect 12 1 2 0;
#X connect 12 2 3 0;
#X connect 12 3 4 0;
#X connect 12 4 5 0;
#X connect 12 5 6 0;
#X connect 12 6 7 0;
#X connect 12 7 8 0;
#X connect 12 8 9 0;
#X connect 13 0 0 0;
#X connect 13 1 0 1;
#X connect 14 0 0 0;
#X connect 14 1 0 2;
#X connect 15 0 0 0;
#X connect 15 1 0 3;
#X connect 16 0 0 0;
#X connect 16 1 0 4;
#X connect 17 0 0 0;
#X connect 17 1 0 5;
#X connect 18 0 0 0;
#X connect 18 1 0 6;
#X connect 19 0 0 0;
#X connect 19 1 0 7;
#X connect 20 0 0 0;
#X connect 20 1 0 8;
#X coords 0 -1 1 1 150 80 1 100 100;
#X restore 17 391 pd mapMatrix;
#X obj -136 371 pix_opencv_warpperspective;
#X text 76 473 <-- transform into a 4x4;
#X text 101 483 openGL transpose matrix;
#X obj -137 194 loadbang;
#X obj 101 101 cnv 15 240 60 empty empty VP_calib 20 12 0 14 -262130
-66577 0;
#X floatatom 253 124 5 0 0 0 - - -, f 5;
#X floatatom 293 124 5 0 0 0 - - -, f 5;
#X floatatom 253 144 5 0 0 0 - - -, f 5;
#X floatatom 293 144 5 0 0 0 - - -, f 5;
#X floatatom 111 124 5 0 0 0 - - -, f 5;
#X floatatom 151 124 5 0 0 0 - - -, f 5;
#X floatatom 111 144 5 0 0 0 - - -, f 5;
#X floatatom 151 144 5 0 0 0 - - -, f 5;
#X text 206 124 VP 1;
#X obj 139 -12 unpack 0 0 0 0 0 0 0 0;
#X obj 139 -52 loadbang;
#X obj 74 258 pack 0 0 0 0 0 0 0 0;
#X obj 74 217 t b f;
#X obj 110 217 t b f;
#X obj 146 217 t b f;
#X obj 182 217 t b f;
#X obj 218 217 t b f;
#X obj 254 217 t b f;
#X obj 290 217 t b f;
#X msg 74 280 dstMatrix \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8;
#X obj 17 496 outlet;
#X obj -136 497 outlet;
#X msg -136 214 srcMatrix -1 1 1 1 -1 -1 1 -1;
#X obj 74 302 t b a;
#X obj 201 107 bng 15 250 50 0 empty empty reset 17 7 0 10 -262144
-1 -1;
#X msg 124 330 invert \$1;
#X obj 124 310 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 139 -31 -1 1 1 1 -1 -1 1 -1;
#X connect 0 0 27 0;
#X connect 1 0 0 0;
#X connect 2 0 28 0;
#X connect 2 1 1 0;
#X connect 5 0 29 0;
#X connect 7 0 20 0;
#X connect 8 0 21 0;
#X connect 9 0 24 0;
#X connect 10 0 25 0;
#X connect 11 0 18 0;
#X connect 12 0 19 0;
#X connect 13 0 22 0;
#X connect 14 0 23 0;
#X connect 16 0 11 0;
#X connect 16 1 12 0;
#X connect 16 2 7 0;
#X connect 16 3 8 0;
#X connect 16 4 13 0;
#X connect 16 5 14 0;
#X connect 16 6 9 0;
#X connect 16 7 10 0;
#X connect 17 0 34 0;
#X connect 18 0 26 0;
#X connect 19 0 18 0;
#X connect 19 1 18 1;
#X connect 20 0 18 0;
#X connect 20 1 18 2;
#X connect 21 0 18 0;
#X connect 21 1 18 3;
#X connect 22 0 18 0;
#X connect 22 1 18 4;
#X connect 23 0 18 0;
#X connect 23 1 18 5;
#X connect 24 0 18 0;
#X connect 24 1 18 6;
#X connect 25 0 18 0;
#X connect 25 1 18 7;
#X connect 26 0 30 0;
#X connect 29 0 2 0;
#X connect 30 1 2 0;
#X connect 31 0 34 0;
#X connect 32 0 2 0;
#X connect 33 0 32 0;
#X connect 34 0 16 0;
#X coords 0 -1 1 1 242 62 2 100 100;
#X restore 751 135 pd compute_perspective;
#X msg 9 527 color 0 0 1 1 \, dimen 640 480 \, create \, 1;
#X obj 839 385 square 1 1;
#X obj 839 333 GEMglMultTransposeMatrixf;
#X text 396 -7 This demonstrates how to use pix_opencv_warpperspective
to compute perspective transformation and to apply it with OpenGL;
#X text 424 61 Very useful to quickly setup video projector;
#X obj 839 312 scaleXYZ 1 1 1;
#X obj 839 359 scaleXYZ 1 1 0;
#X obj 1123 257 pix_texture;
#N canvas 969 388 826 658 compute_perspective 0;
#N canvas 1 110 450 300 format 0;
#X obj 93 7 inlet;
#X obj 118 140 outlet;
#X msg 108 68 \$1 \$4 0 \$7 \$2 \$5 0 \$8 0 0 1 0 \$3 \$6 0 \$9;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 17 474 pd format;
#N canvas 1 86 643 318 mapMatrix 0;
#X obj 110 263 pack 0 0 0 0 0 0 0 0 0;
#X floatatom 110 121 5 0 0 0 - - -, f 5;
#X floatatom 160 121 5 0 0 0 - - -, f 5;
#X floatatom 210 121 5 0 0 0 - - -, f 5;
#X floatatom 110 141 5 0 0 0 - - -, f 5;
#X floatatom 160 141 5 0 0 0 - - -, f 5;
#X floatatom 210 141 5 0 0 0 - - -, f 5;
#X floatatom 110 161 5 0 0 0 - - -, f 5;
#X floatatom 160 161 5 0 0 0 - - -, f 5;
#X floatatom 210 161 5 0 0 0 - - -, f 5;
#X obj 110 285 outlet;
#X obj 110 29 inlet;
#X obj 110 59 unpack 0 0 0 0 0 0 0 0 0;
#X obj 146 195 t b f;
#X obj 189 196 t b f;
#X obj 231 196 t b f;
#X obj 273 195 t b f;
#X obj 316 195 t b f;
#X obj 362 195 t b f;
#X obj 406 195 t b f;
#X obj 456 195 t b f;
#X connect 0 0 10 0;
#X connect 1 0 0 0;
#X connect 2 0 13 0;
#X connect 3 0 14 0;
#X connect 4 0 15 0;
#X connect 5 0 16 0;
#X connect 6 0 17 0;
#X connect 7 0 18 0;
#X connect 8 0 19 0;
#X connect 9 0 20 0;
#X connect 11 0 12 0;
#X connect 12 0 1 0;
#X connect 12 1 2 0;
#X connect 12 2 3 0;
#X connect 12 3 4 0;
#X connect 12 4 5 0;
#X connect 12 5 6 0;
#X connect 12 6 7 0;
#X connect 12 7 8 0;
#X connect 12 8 9 0;
#X connect 13 0 0 0;
#X connect 13 1 0 1;
#X connect 14 0 0 0;
#X connect 14 1 0 2;
#X connect 15 0 0 0;
#X connect 15 1 0 3;
#X connect 16 0 0 0;
#X connect 16 1 0 4;
#X connect 17 0 0 0;
#X connect 17 1 0 5;
#X connect 18 0 0 0;
#X connect 18 1 0 6;
#X connect 19 0 0 0;
#X connect 19 1 0 7;
#X connect 20 0 0 0;
#X connect 20 1 0 8;
#X coords 0 -1 1 1 150 80 1 100 100;
#X restore 17 391 pd mapMatrix;
#X obj -136 371 pix_opencv_warpperspective;
#X text 76 473 <-- transform into a 4x4;
#X text 101 483 openGL transpose matrix;
#X obj -137 194 loadbang;
#X obj 101 101 cnv 15 240 60 empty empty VP_calib 20 12 0 14 -262130
-66577 0;
#X floatatom 253 124 5 0 0 0 - - -, f 5;
#X floatatom 293 124 5 0 0 0 - - -, f 5;
#X floatatom 253 144 5 0 0 0 - - -, f 5;
#X floatatom 293 144 5 0 0 0 - - -, f 5;
#X floatatom 111 124 5 0 0 0 - - -, f 5;
#X floatatom 151 124 5 0 0 0 - - -, f 5;
#X floatatom 111 144 5 0 0 0 - - -, f 5;
#X floatatom 151 144 5 0 0 0 - - -, f 5;
#X text 206 124 VP 1;
#X obj 139 -12 unpack 0 0 0 0 0 0 0 0;
#X obj 139 -52 loadbang;
#X obj 74 258 pack 0 0 0 0 0 0 0 0;
#X obj 74 217 t b f;
#X obj 110 217 t b f;
#X obj 146 217 t b f;
#X obj 182 217 t b f;
#X obj 218 217 t b f;
#X obj 254 217 t b f;
#X obj 290 217 t b f;
#X msg 74 280 dstMatrix \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8;
#X obj 17 496 outlet;
#X obj -136 497 outlet;
#X msg -136 214 srcMatrix -1 1 1 1 -1 -1 1 -1;
#X obj 74 302 t b a;
#X obj 201 107 bng 15 250 50 0 empty empty reset 17 7 0 10 -262144
-1 -1;
#X msg 124 330 invert \$1;
#X obj 124 310 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 139 -31 -1 1 1 1 -1 -1 1 -1;
#X connect 0 0 27 0;
#X connect 1 0 0 0;
#X connect 2 0 28 0;
#X connect 2 1 1 0;
#X connect 5 0 29 0;
#X connect 7 0 20 0;
#X connect 8 0 21 0;
#X connect 9 0 24 0;
#X connect 10 0 25 0;
#X connect 11 0 18 0;
#X connect 12 0 19 0;
#X connect 13 0 22 0;
#X connect 14 0 23 0;
#X connect 16 0 11 0;
#X connect 16 1 12 0;
#X connect 16 2 7 0;
#X connect 16 3 8 0;
#X connect 16 4 13 0;
#X connect 16 5 14 0;
#X connect 16 6 9 0;
#X connect 16 7 10 0;
#X connect 17 0 34 0;
#X connect 18 0 26 0;
#X connect 19 0 18 0;
#X connect 19 1 18 1;
#X connect 20 0 18 0;
#X connect 20 1 18 2;
#X connect 21 0 18 0;
#X connect 21 1 18 3;
#X connect 22 0 18 0;
#X connect 22 1 18 4;
#X connect 23 0 18 0;
#X connect 23 1 18 5;
#X connect 24 0 18 0;
#X connect 24 1 18 6;
#X connect 25 0 18 0;
#X connect 25 1 18 7;
#X connect 26 0 30 0;
#X connect 29 0 2 0;
#X connect 30 1 2 0;
#X connect 31 0 34 0;
#X connect 32 0 2 0;
#X connect 33 0 32 0;
#X connect 34 0 16 0;
#X coords 0 -1 1 1 242 62 2 100 100;
#X restore 1035 134 pd compute_perspective;
#X obj 1123 384 square 1 1;
#X obj 1123 332 GEMglMultTransposeMatrixf;
#X obj 1123 311 scaleXYZ 1 1 1;
#X obj 1123 358 scaleXYZ 1 1 0;
#X obj 1123 281 depth 0;
#X obj 839 291 depth 0;
#X obj 839 247 gemhead 2;
#X obj 1123 226 gemhead 3;
#X obj 460 133 flat_projection 20;
#X obj 11 128 r render;
#X obj 11 258 pix_texture;
#X obj 82 174 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 82 194 openpanel;
#X msg 82 215 open \$1;
#X obj 11 279 square 25;
#X text 71 128 <- this object must be present in your patch to start
the gemchain like in this example.;
#X floatatom 81 283 5 0 0 0 - - -, f 5;
#X obj 11 236 pix_image temp2.JPG;
#X obj 1006 151 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X connect 3 0 20 0;
#X connect 4 0 2 0;
#X connect 5 1 8 1;
#X connect 6 0 2 0;
#X connect 8 0 12 0;
#X connect 11 0 8 0;
#X connect 12 0 7 0;
#X connect 13 0 19 0;
#X connect 14 1 16 1;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 18 0 15 0;
#X connect 19 0 17 0;
#X connect 20 0 11 0;
#X connect 21 0 3 0;
#X connect 22 0 13 0;
#X connect 24 0 32 0;
#X connect 25 0 29 0;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
#X connect 28 0 32 0;
#X connect 31 0 29 1;
#X connect 32 0 25 0;
#X connect 33 0 21 0;
#X connect 33 0 22 0;