vxltestmain.cpp

test case - jremillard -, 2011-09-30 11:45 pm

Download (10.9 kB)

 
1
2
#include <opencv2/core/core_c.h>
3
#include <opencv2/calib3d/calib3d.hpp>
4
5
void main()
6
{
7
  double leftX[100] = {
8
    1378.788994344110,
9
    724.492058784277,
10
    1810.037707835020,
11
    396.947112160521,
12
    436.203625967137,
13
    1400.271246816070,
14
    494.282034958786,
15
    938.654011124523,
16
    488.782469138014,
17
    1617.353029255830,
18
    1111.147288271180,
19
    569.157176526866,
20
    560.738996762324,
21
    691.255423780807,
22
    1278.804682113850,
23
    734.598005914473,
24
    961.393079571195,
25
    827.991692479528,
26
    813.313275466034,
27
    1456.268423772470,
28
    704.417923730786,
29
    333.640331056734,
30
    1287.247861810180,
31
    1157.150632287300,
32
    605.190134330648,
33
    1472.968629474910,
34
    284.314799221784,
35
    246.993579638463,
36
    1194.563909335330,
37
    972.661610415995,
38
    419.643876428092,
39
    506.465449099041,
40
    281.125042206891,
41
    474.462986701568,
42
    1197.800026759970,
43
    412.303125075684,
44
    1664.000644619650,
45
    1585.270685403930,
46
    238.979558158650,
47
    349.132769830731,
48
    274.156144125083,
49
    1242.858756460500,
50
    1497.652111173970,
51
    1213.931995831160,
52
    1024.832800741770,
53
    1042.515066201180,
54
    807.420179810327,
55
    1444.131074801250,
56
    826.477231078197,
57
    197.785718690364,
58
    763.460713004421,
59
    1672.589971939570,
60
    1140.029526850910,
61
    680.062656616731,
62
    788.551573455477,
63
    898.495692955337,
64
    1402.352779039770,
65
    1012.568657608240,
66
    436.382655681971,
67
    684.702213546856,
68
    532.611269853978,
69
    346.046301355360,
70
    1403.738003007420,
71
    342.034558610222,
72
    1267.734844378080,
73
    1686.105489356300,
74
    319.899738498255,
75
    1655.796545664170,
76
    997.041539486744,
77
    638.364906796955,
78
    275.966785591412,
79
    1146.352075487680,
80
    738.615870007357,
81
    1063.567788775130,
82
    434.120038312034,
83
    1815.806998039630,
84
    406.334642870970,
85
    1781.164255225170,
86
    908.892920608291,
87
    1083.752371643400,
88
    277.816762359825,
89
    1172.751442064760,
90
    1419.387116359570,
91
    821.609353779401,
92
    752.549977318772,
93
    686.081487738407,
94
    1647.784083857100,
95
    237.841350342372,
96
    1538.637610009600,
97
    480.589752225134,
98
    269.189056485949,
99
    913.907136384635,
100
    669.118454522557,
101
    684.032425081420,
102
    194.215973093162,
103
    622.014535596073,
104
    806.836902696779,
105
    910.163957727568,
106
    1082.079383293920,
107
    1026.498714491580
108
    };
109
110
  double leftY[100] = {
111
    808.568680389906,
112
    1104.672088029580,
113
    622.049135516459,
114
    1147.611735935820,
115
    1731.113305707270,
116
    805.938183968757,
117
    1044.306254689490,
118
    1045.739563869900,
119
    1469.310661898480,
120
    346.622775959888,
121
    548.792030193118,
122
    368.113378676214,
123
    492.007622273841,
124
    577.245237004122,
125
    918.819385688849,
126
    635.654415136913,
127
    1378.656155355340,
128
    829.690038045976,
129
    1371.893731136170,
130
    305.289079003309,
131
    1385.027537199040,
132
    864.645567783861,
133
    1660.112414038440,
134
    1348.803133657840,
135
    1026.129255986970,
136
    1196.582759068360,
137
    1362.555799605940,
138
    281.903538683447,
139
    626.583231225403,
140
    757.452304871445,
141
    916.093157195028,
142
    1009.912462394020,
143
    945.220424372762,
144
    1671.459469736010,
145
    1588.852977547240,
146
    1577.566116685050,
147
    1403.495382176760,
148
    331.607751518375,
149
    1691.532607521270,
150
    771.474108111404,
151
    806.465111852179,
152
    592.707932413849,
153
    1604.581172473890,
154
    1786.981791585420,
155
    1497.020730145300,
156
    635.439768992316,
157
    401.351958947909,
158
    686.587069315517,
159
    1645.394830861490,
160
    267.100726098219,
161
    1066.567081081710,
162
    802.870599049385,
163
    612.175982706834,
164
    340.467648284011,
165
    472.548523713755,
166
    691.889863925219,
167
    1601.348231984880,
168
    1566.466764086430,
169
    907.381753956976,
170
    1454.471896249690,
171
    1675.320911312110,
172
    1634.984382198000,
173
    1257.758766179480,
174
    338.706567969511,
175
    1078.422854449340,
176
    1329.054379024920,
177
    1538.294128925650,
178
    1000.609969072690,
179
    619.446351027386,
180
    1711.944440615620,
181
    881.491444820351,
182
    1181.469289230580,
183
    852.499012623721,
184
    800.460472678166,
185
    609.172330575738,
186
    623.020652392278,
187
    1455.587486217070,
188
    1458.405978460920,
189
    1422.173146522130,
190
    1345.562192476420,
191
    625.884178208513,
192
    1263.853881527220,
193
    1616.668111241750,
194
    1342.685337954740,
195
    1105.934828405200,
196
    1235.583646377590,
197
    509.376163053056,
198
    499.217434565140,
199
    346.634832473413,
200
    677.542286569158,
201
    679.982828582645,
202
    470.284754665943,
203
    534.583093414128,
204
    1262.491996736940,
205
    1050.092198867930,
206
    660.019491271607,
207
    849.609698696428,
208
    270.056691993104,
209
    620.501904448665,
210
    1059.431873808050
211
  };
212
213
  double rightX[100] = {
214
    1245.581191362860,
215
    686.343295806686,
216
    1710.905341628320,
217
    296.335570880150,
218
    361.793306052936,
219
    1319.780480941250,
220
    385.732219266655,
221
    928.276184691768,
222
    422.316890010314,
223
    1436.007433032370,
224
    1077.632365718090,
225
    535.551365983808,
226
    557.620937095689,
227
    585.779779165533,
228
    1187.368371588510,
229
    718.398564486530,
230
    975.531153729606,
231
    771.711043473850,
232
    685.302455111120,
233
    1336.313628344660,
234
    596.062372217846,
235
    316.836738513371,
236
    1153.917441046250,
237
    1071.029788618130,
238
    496.916709471650,
239
    1358.392721738560,
240
    286.020212848142,
241
    173.688292726585,
242
    1094.421040209420,
243
    892.370882906301,
244
    312.374443318584,
245
    431.945173072792,
246
    269.208972447896,
247
    365.919383993728,
248
    1195.203544750640,
249
    281.565806441387,
250
    1494.268799210650,
251
    1496.830041007360,
252
    134.833844209331,
253
    272.976922687874,
254
    180.628406752228,
255
    1178.439852461700,
256
    1400.592389157940,
257
    1141.089315915080,
258
    920.722674079417,
259
    968.318439402631,
260
    716.462786909167,
261
    1376.747802276880,
262
    792.931303651373,
263
    168.219564757097,
264
    741.459047854407,
265
    1493.979888210390,
266
    1097.443712611570,
267
    658.554540705170,
268
    660.114540506164,
269
    798.007615133231,
270
    1264.480076962070,
271
    967.061702766185,
272
    391.657058169011,
273
    686.939319690569,
274
    531.877974573339,
275
    284.064274478210,
276
    1282.471997764340,
277
    271.102948211683,
278
    1249.934397567030,
279
    1536.756814795390,
280
    277.659991860198,
281
    1499.287780819320,
282
    865.482307570270,
283
    548.758789864115,
284
    157.623721686144,
285
    1100.627925269750,
286
    624.470102134863,
287
    1000.574093410690,
288
    291.623263765932,
289
    1722.944851804120,
290
    328.317295889327,
291
    1679.144331247340,
292
    872.149262065972,
293
    995.783857281078,
294
    249.831997097316,
295
    1157.773940405740,
296
    1286.082051361740,
297
    694.476353852890,
298
    644.828041134124,
299
    645.237426737564,
300
    1489.546237768030,
301
    234.093290226467,
302
    1408.833852784570,
303
    411.006357571872,
304
    221.793779584177,
305
    781.467403105004,
306
    643.592023726456,
307
    553.444326598887,
308
    165.423307915200,
309
    528.328873961122,
310
    783.206495964013,
311
    879.324083382812,
312
    967.378277723293,
313
    961.355739249629
314
  };
315
316
  double rightY[100] = {
317
    802.540973568935,
318
    1092.121666977900,
319
    638.905151669792,
320
    1138.923969853700,
321
    1754.188730040110,
322
    801.158472199461,
323
    1029.601407999510,
324
    1032.118434694830,
325
    1475.765787848670,
326
    367.401752580571,
327
    540.375598733834,
328
    326.351623530078,
329
    455.678013550737,
330
    547.800943179700,
331
    908.581528294728,
332
    611.799466521775,
333
    1365.586371632950,
334
    812.070001928692,
335
    1365.136825081380,
336
    319.543019202855,
337
    1381.481343788060,
338
    838.538453621911,
339
    1634.283769250830,
340
    1332.077610341650,
341
    1010.928016559700,
342
    1178.134560117880,
343
    1368.489271247010,
344
    210.738932786260,
345
    619.273438749521,
346
    742.351711226077,
347
    893.736636729588,
348
    993.609068411985,
349
    923.524024920999,
350
    1690.078880701880,
351
    1565.333955510580,
352
    1594.809777973680,
353
    1372.434400751070,
354
    354.355545034644,
355
    1725.289607463950,
356
    739.129030155904,
357
    774.215845013008,
358
    588.770380895331,
359
    1568.933891434030,
360
    1761.108895182000,
361
    1484.152218127700,
362
    622.606553115948,
363
    373.912475034605,
364
    687.515311305773,
365
    1641.272194789300,
366
    192.799857404917,
367
    1053.030258090510,
368
    803.246715861156,
369
    604.121601703413,
370
    305.638800455231,
371
    444.434690622302,
372
    673.513625149760,
373
    1571.386582462180,
374
    1552.810785248360,
375
    885.283176708385,
376
    1451.668431922810,
377
    1687.450361168510,
378
    1657.328440499420,
379
    1238.201219828390,
380
    278.526002379886,
381
    1064.633284446810,
382
    1301.120159069780,
383
    1555.244851470210,
384
    990.575228170793,
385
    603.500918561028,
386
    1722.060862050010,
387
    854.423633333594,
388
    1166.535073359220,
389
    832.858702584954,
390
    788.025788343182,
391
    568.707760350099,
392
    640.163858185911,
393
    1464.656398216860,
394
    1419.246924110840,
395
    1411.775974400950,
396
    1330.748767378500,
397
    582.313267876563,
398
    1247.130887913800,
399
    1585.283545867040,
400
    1335.055284173930,
401
    1093.450720856590,
402
    1227.063393736530,
403
    524.513377200014,
404
    445.520921876046,
405
    364.256365073446,
406
    644.279584948482,
407
    639.383700359175,
408
    448.939776907872,
409
    504.789085214262,
410
    1255.690253957340,
411
    1035.251625307240,
412
    630.848350522008,
413
    832.261554359302,
414
    249.851333636110,
415
    608.405726415935,
416
    1045.918311323310
417
  };
418
419
  CvMat *points1 = cvCreateMat(1,100,CV_32FC2);
420
  CvMat *points2 = cvCreateMat(1,100,CV_32FC2);
421
422
  /* Fill the points here  */
423
  for( int ii = 0; ii < 100; ++ii)
424
  {
425
    cvSet2D(points1,0,ii,cvScalar(leftX[ii],leftY[ii]));
426
    cvSet2D(points2,0,ii,cvScalar(rightX[ii],rightY[ii]));
427
  }
428
429
  CvMat* fundamental_matrix = cvCreateMat(3,3,CV_32FC1);
430
431
  int fm_count = cvFindFundamentalMat( points1,points2,fundamental_matrix,CV_FM_RANSAC,1,0.99,NULL );
432
433
  double f[3][3];
434
  for (int row = 0; row < 3; row++)
435
    for (int col = 0; col < 3; col++)
436
      f[row][col] = cvGetReal2D(fundamental_matrix,row,col);
437
438
  /* F should be
439
-                [0]        0x0124f7cc        double [3]
440
                [0]        0.00000000000000000        double
441
                [1]        -4.5553643550843581e-007        double
442
                [2]        0.00048625507649367028        double
443
-                [1]        0x0124f7e4        double [3]
444
                [0]        -3.8265051658361694e-007        double
445
                [1]        0.00000000000000000        double
446
                [2]        -0.0087876941283445507        double
447
-                [2]        0x0124f7fc        double [3]
448
                [0]        0.00040328144121783540        double
449
                [1]        0.0096131518188611893        double
450
                [2]        -0.99991498230271214        double
451
452
-                but comes out as
453
454
-                [0]        0x0124f6c4        double [3]
455
                [0]        -1.2345863220630804e-010        double
456
                [1]        4.5348457433647127e-007        double
457
                [2]        -0.00048524167505092919        double
458
-                [1]        0x0124f6dc        double [3]
459
                [0]        3.8508520106006472e-007        double
460
                [1]        7.4300510188862745e-011        double
461
                [2]        0.0087848054245114326        double
462
-                [2]        0x0124f6f4        double [3]
463
                [0]        -0.00040433430694974959        double
464
                [1]        -0.0096106734126806259        double
465
                [2]        1.0000000000000000        double
466
  */
467
468
}
469