aboutsummaryrefslogtreecommitdiff
path: root/examples/09_vp_calibration/09_vp_calibration.pd
blob: 2277360a5506d5af919e4628f6769e77ce4e264a (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
#N canvas 904 187 901 736 10;
#X declare -path ../../;
#X obj 17 13 declare -path ../../;
#X text -18 0 declare path to be sure externals were found...;
#X obj 234 247 gemhead;
#X obj 9 588 gemwin;
#X obj 234 268 pix_image pattern.png;
#X obj 234 290 pix_texture;
#X msg 23 555 destroy;
#N canvas 1042 262 739 611 compute_perspective 0;
#N canvas 1 98 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 - - -;
#X floatatom 160 121 5 0 0 0 - - -;
#X floatatom 210 121 5 0 0 0 - - -;
#X floatatom 110 141 5 0 0 0 - - -;
#X floatatom 160 141 5 0 0 0 - - -;
#X floatatom 210 141 5 0 0 0 - - -;
#X floatatom 110 161 5 0 0 0 - - -;
#X floatatom 160 161 5 0 0 0 - - -;
#X floatatom 210 161 5 0 0 0 - - -;
#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 - - -;
#X floatatom 293 124 5 0 0 0 - - -;
#X floatatom 253 144 5 0 0 0 - - -;
#X floatatom 293 144 5 0 0 0 - - -;
#X floatatom 111 124 5 0 0 0 - - -;
#X floatatom 151 124 5 0 0 0 - - -;
#X floatatom 111 144 5 0 0 0 - - -;
#X floatatom 151 144 5 0 0 0 - - -;
#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 obj -123 -47 inlet;
#X msg 474 -23 -1 1 1 1 -1 -1 1 -1;
#X msg 304 5 -4 3 4 3 -4 -3 4 -3;
#X msg -122 256 srcMatrix -4 3 4 3 -4 -3 4 -3;
#X msg -130 235 srcMatrix -1 1 1 1 -1 -1 1 -1;
#X msg -136 214 srcMatrix -1 1 1 1 -1 -1 1 -1;
#X obj -125 338 pix_buf;
#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 obj -123 -25 pix_info ______________;
#X msg 434 40 srcMatrix -1 1 1 1 -1 -1 1 -1;
#X obj -11 7 * -1;
#X obj 39 7 * -1;
#X obj -123 -2 t a b;
#X obj -96 37 spigot;
#X obj -118 123 spigot;
#X obj 43 -47 inlet;
#X obj 43 -23 == 0;
#X obj 90 -10 print;
#X obj -47 194 print;
#X obj -96 62 pack -1 0 0 0 0 0 0 0 0;
#X obj -96 82 route -1;
#X msg -96 153 srcMatrix \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8;
#X msg -67 118 set \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8;
#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 244 -52 -1830 1330 1830 1330 -1830 -1330 1830 -1330;
#X msg 139 -32 -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 34 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 56 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 36 0;
#X connect 29 0 38 0;
#X connect 34 0 2 0;
#X connect 35 0 2 0;
#X connect 36 0 35 0;
#X connect 36 1 2 0;
#X connect 37 0 56 0;
#X connect 38 0 42 0;
#X connect 38 1 40 0;
#X connect 38 1 49 3;
#X connect 38 1 49 7;
#X connect 38 2 41 0;
#X connect 38 2 49 2;
#X connect 38 2 49 4;
#X connect 40 0 49 1;
#X connect 40 0 49 5;
#X connect 41 0 49 6;
#X connect 41 0 49 8;
#X connect 42 0 35 0;
#X connect 42 1 43 0;
#X connect 42 1 44 0;
#X connect 43 0 49 0;
#X connect 44 0 34 0;
#X connect 45 0 46 0;
#X connect 45 0 44 1;
#X connect 46 0 43 1;
#X connect 46 0 47 0;
#X connect 49 0 50 0;
#X connect 50 0 51 0;
#X connect 50 0 52 0;
#X connect 51 0 2 0;
#X connect 52 0 56 0;
#X connect 53 0 2 0;
#X connect 54 0 53 0;
#X connect 56 0 16 0;
#X coords 0 -1 1 1 242 62 2 100 100;
#X restore 144 155 pd compute_perspective;
#X obj 234 379 scaleXYZ 1 1 0;
#X msg 9 527 color 0 0 1 1 \, dimen 640 480 \, create \, 1;
#X obj 501 332 gemhead;
#X obj 501 353 pix_image pattern.png;
#X obj 501 405 pix_texture;
#X obj 501 427 pix_opencv_warpperspective;
#X obj 144 295 pix_texture;
#X obj 144 87 gemhead;
#X obj 144 66 == 0;
#X obj 234 24 vradio 15 1 0 2 empty empty empty 0 -8 0 10 -262144 -1
-1 1;
#X obj 144 108 pix_image pattern.png;
#X obj 144 130 pix_rgba;
#X obj 234 -36 loadbang;
#X msg 234 -14 1;
#X text 249 24 CPU;
#X text 249 38 GPU;
#X obj 234 312 scaleXYZ 4 3 1;
#X obj 234 405 square 1 1;
#X obj 144 359 rectangle 1 1;
#X obj 144 324 scaleXYZ 4 3 1;
#X floatatom 339 301 5 0 0 0 - - -;
#X obj 323 444 GEMglMultTransposeMatrixf;
#X obj 234 353 GEMglMultTransposeMatrixf;
#X text 375 62 This demonstrates how to use pix_opencv_warpperspective
to compute perspective transformation and to apply it with OpenGL;
#X text 403 130 Very useful to quickly setup video projector;
#X connect 2 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 24 0;
#X connect 6 0 3 0;
#X connect 7 0 14 0;
#X connect 7 1 30 1;
#X connect 8 0 25 0;
#X connect 9 0 3 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 14 0 27 0;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 17 0 2 0;
#X connect 17 0 16 0;
#X connect 17 0 7 1;
#X connect 18 0 19 0;
#X connect 19 0 7 0;
#X connect 20 0 21 0;
#X connect 21 0 17 0;
#X connect 24 0 30 0;
#X connect 27 0 26 0;
#X connect 28 0 24 1;
#X connect 30 0 8 0;