ofs | hex dump | ascii |
---|
0000 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | TOOLBOX_calib/.................. |
0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0060 | 00 00 00 00 20 20 20 37 35 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......750.....471.....454...... |
0080 | 20 20 20 20 20 20 30 20 20 36 37 36 33 32 36 35 30 32 35 20 20 20 36 33 33 37 00 20 00 00 00 00 | ......0..6763265025...6337...... |
00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0200 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 63 61 6c 69 62 5f 67 75 69 2e 6d 00 00 00 00 00 00 00 | TOOLBOX_calib/calib_gui.m....... |
0220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0260 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
0280 | 20 20 31 34 37 33 33 20 20 36 37 36 33 30 37 30 32 31 33 20 20 31 30 35 34 32 00 20 00 00 00 00 | ..14733..6763070213..10542...... |
02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0400 | 66 70 72 69 6e 74 66 28 31 2c 27 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | fprintf(1,'*-------------------- |
0420 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
0440 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
0460 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 | ----------------*\n');.fprintf(1 |
0480 | 2c 27 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 61 6e 65 72 61 20 63 61 6c | ,'|...................Canera.cal |
04a0 | 69 62 72 61 74 69 6f 6e 20 66 72 6f 6d 20 6d 75 6c 74 69 70 6c 65 20 69 6d 61 67 65 73 20 6f 66 | ibration.from.multiple.images.of |
04c0 | 20 61 20 70 6c 61 6e 61 72 20 67 72 69 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .a.planar.grid.................. |
04e0 | 20 20 20 20 20 20 20 7c 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 7c 20 20 20 20 20 20 | .......|\n');.fprintf(1,'|...... |
0500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 29 20 4a 65 61 6e 2d 59 76 65 | ....................(c).Jean-Yve |
0520 | 73 20 42 6f 75 67 75 65 74 20 2d 20 41 75 67 75 73 74 20 33 31 73 74 2c 20 31 39 39 39 20 20 20 | s.Bouguet.-.August.31st,.1999... |
0540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 5c | ..............................|\ |
0560 | 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | n');.fprintf(1,'*--------------- |
0580 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
05a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
05c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 5c 6e 5c 6e 5c 6e 27 29 3b 0a | ---------------------*\n\n\n');. |
05e0 | 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 4c 49 53 54 20 4f 46 20 43 41 4c 49 42 52 41 54 49 4f 4e | ..fprintf(1,'LIST.OF.CALIBRATION |
0600 | 20 43 4f 4d 4d 41 4e 44 53 20 28 74 6f 20 62 65 20 65 78 65 63 75 74 65 64 20 66 72 6f 6d 20 31 | .COMMANDS.(to.be.executed.from.1 |
0620 | 20 74 6f 20 35 29 3a 5c 6e 5c 6e 27 29 3b 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 31 2d 20 49 6d | .to.5):\n\n');..fprintf(1,'1-.Im |
0640 | 61 67 65 20 6e 61 6d 65 73 3a 20 20 20 20 20 20 20 20 20 20 4c 65 74 73 20 74 68 65 20 75 73 65 | age.names:..........Lets.the.use |
0660 | 72 20 65 6e 74 65 72 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 63 61 | r.enter.the.file.names.of.the.ca |
0680 | 6c 69 62 72 61 74 69 6f 6e 20 69 6d 61 67 65 73 20 28 6d 61 78 20 3d 20 33 30 20 69 6d 61 67 65 | libration.images.(max.=.30.image |
06a0 | 73 29 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 | s).\n');.fprintf(1,'............ |
06c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 49 74 20 69 6e 63 6c 75 64 65 73 20 62 61 73 65 6e 61 6d | .............It.includes.basenam |
06e0 | 65 2c 20 69 6d 61 67 65 20 74 79 70 65 20 28 27 27 74 69 66 27 27 2c 20 27 27 62 6d 70 27 27 20 | e,.image.type.(''tif'',.''bmp''. |
0700 | 6f 72 20 27 27 72 61 73 27 27 29 2c 20 6e 75 6d 62 65 72 69 6e 67 20 73 63 68 65 6d 65 2e 5c 6e | or.''ras''),.numbering.scheme.\n |
0720 | 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ');.fprintf(1,'................. |
0740 | 20 20 20 20 20 20 20 20 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 61 75 6e 63 68 73 20 74 68 | ........Automatically.launchs.th |
0760 | 65 20 6e 65 78 74 20 73 74 65 70 20 28 52 65 61 64 20 69 6d 61 67 65 73 29 2e 5c 6e 27 29 3b 0a | e.next.step.(Read.images).\n');. |
0780 | 66 70 72 69 6e 74 66 28 31 2c 27 32 2d 20 52 65 61 64 20 69 6d 61 67 65 73 3a 20 20 20 20 20 20 | fprintf(1,'2-.Read.images:...... |
07a0 | 20 20 20 20 52 65 61 64 73 20 69 6e 20 74 68 65 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 69 6d 61 | ....Reads.in.the.calibration.ima |
07c0 | 67 65 73 20 66 72 6f 6d 20 66 69 6c 65 73 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 | ges.from.files.\n');.fprintf(1,' |
07e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 75 74 6f 6d 61 74 | .........................Automat |
0800 | 69 63 61 6c 6c 79 20 6c 61 75 6e 63 68 73 20 74 68 65 20 6e 65 78 74 20 73 74 65 70 20 28 45 78 | ically.launchs.the.next.step.(Ex |
0820 | 74 72 61 63 74 20 67 72 69 64 20 63 6f 72 6e 65 72 73 29 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 | tract.grid.corners).\n');.fprint |
0840 | 66 28 31 2c 27 33 2d 20 45 78 74 72 61 63 74 20 67 72 69 64 20 63 6f 72 6e 65 72 73 3a 20 45 78 | f(1,'3-.Extract.grid.corners:.Ex |
0860 | 74 72 61 63 74 73 20 74 68 65 20 67 72 69 64 20 63 6f 72 6e 65 72 73 20 66 72 6f 6d 20 74 68 65 | tracts.the.grid.corners.from.the |
0880 | 20 69 6d 61 67 65 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 | .image.\n');.fprintf(1,'........ |
08a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 65 64 20 66 6f 75 72 20 6d 61 75 61 | .................Based.four.maua |
08c0 | 6c 20 63 6c 69 63 6b 73 20 70 65 72 20 69 6d 61 67 65 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 | l.clicks.per.image.\n');.fprintf |
08e0 | 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 | (1,'.........................The |
0900 | 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 64 61 74 61 20 69 73 20 73 61 76 65 64 20 75 6e 64 65 72 | .calibration.data.is.saved.under |
0920 | 20 27 27 63 61 6c 69 62 5f 64 61 74 61 2e 6d 61 74 27 27 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 | .''calib_data.mat''.\n');.fprint |
0940 | 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 75 | f(1,'.........................Au |
0960 | 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 61 75 6e 63 68 73 20 74 68 65 20 6e 65 78 74 20 73 74 65 | tomatically.launchs.the.next.ste |
0980 | 70 20 28 52 75 6e 20 63 61 6c 69 62 72 61 74 69 6f 6e 29 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 | p.(Run.calibration).\n');.fprint |
09a0 | 66 28 31 2c 27 34 2d 20 52 75 6e 20 63 61 6c 69 62 72 61 74 69 6f 6e 3a 20 20 20 20 20 20 4d 61 | f(1,'4-.Run.calibration:......Ma |
09c0 | 69 6e 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 70 72 6f 63 65 64 75 72 65 2e 5c 6e 27 29 3b 0a 66 | in.calibration.procedure.\n');.f |
09e0 | 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | printf(1,'...................... |
0a00 | 20 20 20 4f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 6f 66 20 69 6e 74 72 69 6e 73 69 63 20 61 6e 64 | ...Optimization.of.intrinsic.and |
0a20 | 20 65 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 6d 69 6e 69 6d 69 7a | .extrinsic.parameters.to.minimiz |
0a40 | 65 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e\n');.fprintf(1,'.............. |
0a60 | 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 72 65 70 72 6f 6a 65 63 74 69 6f 6e 20 65 72 72 6f | ...........the.reprojection.erro |
0a80 | 72 20 28 69 6e 20 74 68 65 20 6c 65 61 73 74 20 73 71 75 61 72 65 73 20 73 65 6e 73 65 2e 5c 6e | r.(in.the.least.squares.sense.\n |
0aa0 | 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ');.fprintf(1,'................. |
0ac0 | 20 20 20 20 20 20 20 20 45 73 74 69 6d 61 74 65 64 20 70 61 72 61 6d 65 74 65 72 73 3a 20 32 20 | ........Estimated.parameters:.2. |
0ae0 | 66 6f 63 61 6c 20 6c 65 6e 67 74 68 73 2c 20 70 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 2c 5c | focal.lengths,.principal.point,\ |
0b00 | 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n');.fprintf(1,'................ |
0b20 | 20 20 20 20 20 20 20 20 20 72 61 64 69 61 6c 20 28 32 20 63 6f 65 66 66 2e 20 2d 3e 20 34 20 64 | .........radial.(2.coeff..->.4.d |
0b40 | 65 67 72 65 65 20 6d 6f 64 65 6c 29 20 61 6e 64 20 74 61 6e 67 65 6e 74 69 61 6c 20 28 32 20 63 | egree.model).and.tangential.(2.c |
0b60 | 6f 65 66 66 2e 29 20 64 69 73 74 6f 72 74 69 6f 6e 2c 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 | oeff.).distortion,\n');.fprintf( |
0b80 | 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 | 1,'.........................and. |
0ba0 | 65 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 65 74 65 72 73 20 28 36 20 70 61 72 61 6d 65 74 65 | extrinsic.parameters.(6.paramete |
0bc0 | 72 73 20 70 65 72 20 69 6d 61 67 65 29 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 | rs.per.image).\n');.fprintf(1,'. |
0be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 66 69 6e 61 | ........................The.fina |
0c00 | 6c 20 73 6f 6c 75 74 69 6f 6e 20 69 73 20 73 61 76 65 64 20 75 6e 64 65 72 20 27 27 43 61 6c 69 | l.solution.is.saved.under.''Cali |
0c20 | 62 5f 52 65 73 75 6c 74 73 2e 6d 61 74 27 27 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c | b_Results.mat''.\n');.fprintf(1, |
0c40 | 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 6f 72 20 61 20 | '.........................For.a. |
0c60 | 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 69 6e 74 72 69 6e 73 69 63 20 63 61 6d | description.of.the.intrinsic.cam |
0c80 | 65 72 61 20 6d 6f 64 65 6c 2c 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 72 65 66 65 72 65 6e 63 | era.model,.refer.to.the.referenc |
0ca0 | 65 3a 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 | e:\n');.fprintf(1,'............. |
0cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 41 20 46 6f 75 72 2d 73 74 65 70 20 43 61 6d 65 72 61 20 | ............"A.Four-step.Camera. |
0ce0 | 43 61 6c 69 62 72 61 74 69 6f 6e 20 50 72 6f 63 65 64 75 72 65 20 77 69 74 68 20 69 6d 70 6c 69 | Calibration.Procedure.with.impli |
0d00 | 63 69 74 20 49 6d 61 67 65 20 43 6f 72 72 65 63 74 69 6f 6e 22 5c 6e 27 29 3b 0a 66 70 72 69 6e | cit.Image.Correction"\n');.fprin |
0d20 | 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4a | tf(1,'.........................J |
0d40 | 61 6e 6e 65 20 48 65 69 6b 6b 69 6c 61 20 61 6e 64 20 4f 6c 6c 69 20 53 69 6c 76 65 6e 2c 20 49 | anne.Heikkila.and.Olli.Silven,.I |
0d60 | 6e 66 6f 74 65 63 68 20 4f 75 6c 75 20 61 6e 64 20 44 65 70 61 72 74 6d 65 6e 74 20 6f 66 20 45 | nfotech.Oulu.and.Department.of.E |
0d80 | 45 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | E\n');.fprintf(1,'.............. |
0da0 | 20 20 20 20 20 20 20 20 20 20 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 4f 75 6c 75 2c 20 41 | ...........University.of.Oulu,.A |
0dc0 | 70 70 65 61 72 65 64 20 69 6e 20 43 56 50 52 27 27 39 37 2c 20 50 75 65 72 74 6f 20 52 69 63 6f | ppeared.in.CVPR''97,.Puerto.Rico |
0de0 | 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .\n');.fprintf(1,'.............. |
0e00 | 20 20 20 20 20 20 20 20 20 20 20 56 69 73 69 74 20 68 74 74 70 3a 2f 2f 77 77 77 2e 65 65 2e 6f | ...........Visit.http://www.ee.o |
0e20 | 75 6c 75 2e 66 69 2f 7e 6a 74 68 2f 63 61 6c 69 62 72 2f 43 61 6c 69 62 72 61 74 69 6f 6e 2e 68 | ulu.fi/~jth/calibr/Calibration.h |
0e40 | 74 6d 6c 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 | tml\n');.fprintf(1,'............ |
0e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 61 75 6e 63 | .............Automatically.launc |
0e80 | 68 73 20 74 68 65 20 6e 65 78 74 20 73 74 65 70 20 28 47 72 61 70 68 69 63 20 6f 75 74 29 2e 5c | hs.the.next.step.(Graphic.out).\ |
0ea0 | 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 35 2d 20 47 72 61 70 68 69 63 20 6f 75 74 3a 20 | n');.fprintf(1,'5-.Graphic.out:. |
0ec0 | 20 20 20 20 20 20 20 20 20 47 65 6e 65 72 61 74 65 73 20 74 68 65 20 67 72 61 70 68 69 63 61 6c | .........Generates.the.graphical |
0ee0 | 20 6f 75 74 70 75 74 20 61 73 73 6f 63 69 61 74 65 64 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e | .output.associated.to.the.curren |
0f00 | 74 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 73 6f 6c 75 74 69 6f 6e 2e 5c 6e 27 29 3b 0a 66 70 72 | t.calibration.solution.\n');.fpr |
0f20 | 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | intf(1,'........................ |
0f40 | 20 49 74 20 73 68 6f 77 73 20 74 68 65 20 33 44 20 6c 6f 63 61 74 69 6f 6e 73 20 6f 66 20 74 68 | .It.shows.the.3D.locations.of.th |
0f60 | 65 20 67 72 69 64 73 2c 20 61 6e 64 20 72 65 70 72 6f 6a 65 63 74 73 20 74 68 65 20 33 44 20 70 | e.grids,.and.reprojects.the.3D.p |
0f80 | 61 74 74 65 72 6e 73 20 6f 6e 20 74 68 65 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 | atterns.on.the\n');.fprintf(1,'. |
0fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 69 67 69 6e 61 6c | ........................original |
0fc0 | 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 69 6d 61 67 65 73 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 | .calibration.images.\n');.fprint |
0fe0 | 66 28 31 2c 27 36 2d 20 73 6f 6c 2e 20 77 69 74 68 20 63 65 6e 74 65 72 3a 20 20 20 20 20 4c 65 | f(1,'6-.sol..with.center:.....Le |
1000 | 74 73 20 74 68 65 20 75 73 65 72 20 73 65 6c 65 63 74 20 74 68 65 20 63 61 6c 69 62 72 61 74 69 | ts.the.user.select.the.calibrati |
1020 | 6f 6e 20 73 6f 6c 75 74 69 6f 6e 20 77 69 74 68 20 63 6f 6d 70 75 74 65 64 20 70 72 69 6e 63 69 | on.solution.with.computed.princi |
1040 | 70 61 6c 20 70 6f 69 6e 74 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 | pal.point.\n');.fprintf(1,'..... |
1060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 69 73 20 74 68 65 20 | ....................This.is.the. |
1080 | 64 65 66 61 75 6c 74 20 63 61 73 65 20 28 73 6f 6c 75 74 69 6f 6e 20 72 65 74 61 69 6e 65 64 20 | default.case.(solution.retained. |
10a0 | 61 66 74 65 72 20 52 75 6e 20 63 61 6c 69 62 72 61 74 69 6f 6e 29 2e 5c 6e 27 29 3b 0a 66 70 72 | after.Run.calibration).\n');.fpr |
10c0 | 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | intf(1,'........................ |
10e0 | 20 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 28 72 65 29 67 65 6e 65 72 61 74 65 73 20 74 68 65 | .Automatically.(re)generates.the |
1100 | 20 67 72 61 70 68 69 63 61 6c 20 6f 75 74 70 75 74 20 61 73 73 6f 63 69 61 74 65 64 20 74 6f 20 | .graphical.output.associated.to. |
1120 | 74 68 61 74 20 73 6f 6c 75 74 69 6f 6e 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 37 | that.solution.\n');.fprintf(1,'7 |
1140 | 2d 20 73 6f 6c 2e 20 77 69 74 68 6f 75 74 20 63 65 6e 74 65 72 3a 20 20 4c 65 74 73 20 74 68 65 | -.sol..without.center:..Lets.the |
1160 | 20 75 73 65 72 73 20 73 65 6c 65 63 74 20 74 68 65 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 73 6f | .users.select.the.calibration.so |
1180 | 6c 75 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 63 6f 6d 70 75 74 65 64 20 70 72 69 6e 63 69 70 61 | lution.without.computed.principa |
11a0 | 6c 20 70 6f 69 6e 74 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 | l.point.\n');.fprintf(1,'....... |
11c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 49 6e 20 74 68 61 74 20 63 61 73 65 2c 20 | ..................In.that.case,. |
11e0 | 74 68 65 20 70 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 20 69 73 20 61 73 73 75 6d 65 64 20 61 | the.principal.point.is.assumed.a |
1200 | 74 20 74 68 65 20 63 65 6e 74 65 72 20 6f 66 20 74 68 65 20 69 6d 61 67 65 2e 5c 6e 27 29 3b 0a | t.the.center.of.the.image.\n');. |
1220 | 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fprintf(1,'..................... |
1240 | 20 20 20 20 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 73 20 74 68 65 20 | ....Automatically.generates.the. |
1260 | 67 72 61 70 68 69 63 61 6c 20 6f 75 74 70 75 74 20 61 73 73 6f 63 69 61 74 65 64 20 74 6f 20 74 | graphical.output.associated.to.t |
1280 | 68 61 74 20 73 6f 6c 75 74 69 6f 6e 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 | hat.solution.\n');.fprintf(1,'.. |
12a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 6f 70 74 69 | .......................This.opti |
12c0 | 6f 6e 20 69 73 20 73 6f 6d 65 74 69 6d 65 73 20 75 73 65 66 75 6c 20 77 68 65 6e 20 74 68 65 20 | on.is.sometimes.useful.when.the. |
12e0 | 70 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 20 69 73 20 64 69 66 66 69 63 75 6c 74 20 74 6f 5c | principal.point.is.difficult.to\ |
1300 | 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n');.fprintf(1,'................ |
1320 | 20 20 20 20 20 20 20 20 20 65 73 74 69 6d 61 74 65 20 28 69 6e 20 70 61 72 74 69 63 75 6c 61 72 | .........estimate.(in.particular |
1340 | 20 77 68 65 6e 20 74 68 65 20 63 61 6d 65 72 61 20 66 69 65 6c 64 20 6f 66 20 76 69 65 77 20 69 | .when.the.camera.field.of.view.i |
1360 | 73 20 73 6d 61 6c 6c 29 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 38 2d 20 45 78 69 | s.small).\n');.fprintf(1,'8-.Exi |
1380 | 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 78 69 74 73 20 74 68 65 20 63 61 6c | t:.................Exits.the.cal |
13a0 | 69 62 72 61 74 69 6f 6e 20 74 6f 6f 6c 2e 5c 6e 5c 6e 5c 6e 27 29 3b 0a 0a 0a 66 70 72 69 6e 74 | ibration.tool.\n\n\n');...fprint |
13c0 | 66 28 31 2c 27 57 41 52 4e 49 4e 47 3a 20 44 6f 20 6e 6f 74 20 66 6f 72 67 65 74 20 74 6f 20 63 | f(1,'WARNING:.Do.not.forget.to.c |
13e0 | 68 61 6e 67 65 20 64 58 5f 64 65 66 61 75 6c 74 20 61 6e 64 20 64 58 5f 64 65 66 61 75 6c 74 20 | hange.dX_default.and.dX_default. |
1400 | 69 6e 20 63 6c 69 63 6b 5f 63 61 6c 69 62 2e 6d 20 28 45 78 74 72 61 63 74 20 67 72 69 64 20 63 | in.click_calib.m.(Extract.grid.c |
1420 | 6f 72 6e 65 72 73 29 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 20 20 20 20 20 | orners).\n');.fprintf(1,'....... |
1440 | 20 20 54 68 65 73 65 20 61 72 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 68 6f 72 2e 20 61 6e 64 | ..These.are.the.default.hor..and |
1460 | 20 76 65 72 74 2e 20 73 69 7a 65 73 20 6f 66 20 65 61 63 68 20 73 71 75 61 72 65 20 6f 66 20 74 | .vert..sizes.of.each.square.of.t |
1480 | 68 65 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 70 61 74 74 65 72 6e 2e 5c 6e 27 29 3b 0a 66 70 72 | he.calibration.pattern.\n');.fpr |
14a0 | 69 6e 74 66 28 31 2c 27 4e 4f 54 45 3a 20 20 20 20 77 69 6e 74 78 20 61 6e 64 20 77 69 6e 74 79 | intf(1,'NOTE:....wintx.and.winty |
14c0 | 20 61 72 65 20 74 77 6f 20 70 61 72 61 6d 65 74 65 72 73 20 64 65 66 69 6e 69 6e 67 20 74 68 65 | .are.two.parameters.defining.the |
14e0 | 20 73 69 7a 65 20 6f 66 20 74 68 65 20 69 6d 61 67 65 20 6e 65 69 67 68 62 6f 72 68 6f 6f 64 20 | .size.of.the.image.neighborhood. |
1500 | 66 6f 72 20 73 75 62 70 69 78 65 6c 2e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 20 20 | for.subpixel.\n');.fprintf(1,'.. |
1520 | 20 20 20 20 20 20 20 63 6f 72 6e 65 72 20 64 65 74 65 63 74 69 6f 6e 2e 20 54 68 65 20 65 66 66 | .......corner.detection..The.eff |
1540 | 65 63 74 69 76 65 20 77 69 6e 64 6f 77 20 73 69 7a 65 20 69 73 20 28 32 2a 77 69 6e 74 78 2b 31 | ective.window.size.is.(2*wintx+1 |
1560 | 29 78 28 32 2a 77 69 6e 74 79 2b 31 29 20 70 69 78 65 6c 73 2e 5c 6e 27 29 3b 0a 0a 0a 67 6c 6f | )x(2*winty+1).pixels.\n');...glo |
1580 | 62 61 6c 20 58 5f 31 20 78 5f 31 20 58 5f 32 20 78 5f 32 20 58 5f 33 20 78 5f 33 20 58 5f 34 20 | bal.X_1.x_1.X_2.x_2.X_3.x_3.X_4. |
15a0 | 78 5f 34 20 58 5f 35 20 78 5f 35 20 58 5f 36 20 78 5f 36 20 58 5f 37 20 78 5f 37 20 58 5f 38 20 | x_4.X_5.x_5.X_6.x_6.X_7.x_7.X_8. |
15c0 | 78 5f 38 20 58 5f 39 20 78 5f 39 20 58 5f 31 30 20 78 5f 31 30 20 58 5f 31 31 20 78 5f 31 31 20 | x_8.X_9.x_9.X_10.x_10.X_11.x_11. |
15e0 | 58 5f 31 32 20 78 5f 31 32 20 58 5f 31 33 20 78 5f 31 33 20 58 5f 31 34 20 78 5f 31 34 20 58 5f | X_12.x_12.X_13.x_13.X_14.x_14.X_ |
1600 | 31 35 20 78 5f 31 35 20 58 5f 31 36 20 78 5f 31 36 20 58 5f 31 37 20 78 5f 31 37 20 58 5f 31 38 | 15.x_15.X_16.x_16.X_17.x_17.X_18 |
1620 | 20 78 5f 31 38 20 58 5f 31 39 20 78 5f 31 39 20 58 5f 32 30 20 78 5f 32 30 20 58 5f 32 31 20 78 | .x_18.X_19.x_19.X_20.x_20.X_21.x |
1640 | 5f 32 31 20 58 5f 32 32 20 78 5f 32 32 20 58 5f 32 33 20 78 5f 32 33 20 58 5f 32 34 20 78 5f 32 | _21.X_22.x_22.X_23.x_23.X_24.x_2 |
1660 | 34 20 58 5f 32 35 20 78 5f 32 35 20 58 5f 32 36 20 78 5f 32 36 20 58 5f 32 37 20 78 5f 32 37 20 | 4.X_25.x_25.X_26.x_26.X_27.x_27. |
1680 | 58 5f 32 38 20 78 5f 32 38 20 58 5f 32 39 20 78 5f 32 39 20 58 5f 33 30 20 78 5f 33 30 20 0a 0a | X_28.x_28.X_29.x_29.X_30.x_30... |
16a0 | 66 69 67 75 72 65 28 31 29 3b 20 63 6c 66 3b 0a 0a 70 6f 73 20 3d 20 67 65 74 28 31 2c 27 50 6f | figure(1);.clf;..pos.=.get(1,'Po |
16c0 | 73 69 74 69 6f 6e 27 29 3b 0a 0a 73 65 74 28 31 2c 27 55 6e 69 74 73 27 2c 27 70 6f 69 6e 74 73 | sition');..set(1,'Units','points |
16e0 | 27 2c 20 2e 2e 2e 0a 09 27 42 61 63 6b 69 6e 67 53 74 6f 72 65 27 2c 27 6f 66 66 27 2c 20 2e 2e | ',......'BackingStore','off',... |
1700 | 2e 0a 09 27 43 6f 6c 6f 72 27 2c 5b 30 2e 38 20 30 2e 38 20 30 2e 38 5d 2c 20 2e 2e 2e 0a 09 27 | ...'Color',[0.8.0.8.0.8],......' |
1720 | 4d 65 6e 75 42 61 72 27 2c 27 6e 6f 6e 65 27 2c 20 2e 2e 2e 0a 09 27 52 65 73 69 7a 65 27 2c 27 | MenuBar','none',......'Resize',' |
1740 | 6f 66 66 27 2c 20 2e 2e 2e 0a 09 27 4e 61 6d 65 27 2c 27 43 61 6d 65 72 61 20 63 61 6c 69 62 72 | off',......'Name','Camera.calibr |
1760 | 61 74 69 6f 6e 20 74 6f 6f 6c 27 2c 20 2e 2e 2e 0a 27 50 6f 73 69 74 69 6f 6e 27 2c 5b 70 6f 73 | ation.tool',.....'Position',[pos |
1780 | 28 31 29 20 70 6f 73 28 32 29 20 33 31 32 20 20 35 39 5d 2c 20 2e 2e 2e 0a 27 4e 75 6d 62 65 72 | (1).pos(2).312..59],.....'Number |
17a0 | 54 69 74 6c 65 27 2c 27 6f 66 66 27 29 3b 0a 0a 75 69 63 6f 6e 74 72 6f 6c 28 27 50 61 72 65 6e | Title','off');..uicontrol('Paren |
17c0 | 74 27 2c 31 2c 20 2e 2e 2e 0a 09 27 55 6e 69 74 73 27 2c 27 70 6f 69 6e 74 73 27 2c 20 2e 2e 2e | t',1,......'Units','points',.... |
17e0 | 0a 09 27 43 61 6c 6c 62 61 63 6b 27 2c 27 64 61 74 61 5f 63 61 6c 69 62 3b 27 2c 20 2e 2e 2e 0a | ..'Callback','data_calib;',..... |
1800 | 09 27 4c 69 73 74 62 6f 78 54 6f 70 27 2c 30 2c 20 2e 2e 2e 0a 09 27 50 6f 73 69 74 69 6f 6e 27 | .'ListboxTop',0,......'Position' |
1820 | 2c 5b 32 2e 32 35 20 33 30 2e 35 20 20 37 35 20 20 20 32 37 5d 2c 20 2e 2e 2e 0a 09 27 53 74 72 | ,[2.25.30.5..75...27],......'Str |
1840 | 69 6e 67 27 2c 27 49 6d 61 67 65 20 6e 61 6d 65 73 27 2c 20 2e 2e 2e 0a 20 20 20 27 54 61 67 27 | ing','Image.names',........'Tag' |
1860 | 2c 27 50 75 73 68 62 75 74 74 6f 6e 31 27 29 3b 0a 0a 75 69 63 6f 6e 74 72 6f 6c 28 27 50 61 72 | ,'Pushbutton1');..uicontrol('Par |
1880 | 65 6e 74 27 2c 31 2c 20 2e 2e 2e 0a 09 27 55 6e 69 74 73 27 2c 27 70 6f 69 6e 74 73 27 2c 20 2e | ent',1,......'Units','points',.. |
18a0 | 2e 2e 0a 09 27 43 61 6c 6c 62 61 63 6b 27 2c 27 69 6d 61 5f 72 65 61 64 5f 63 61 6c 69 62 3b 27 | ....'Callback','ima_read_calib;' |
18c0 | 2c 20 2e 2e 2e 0a 09 27 4c 69 73 74 62 6f 78 54 6f 70 27 2c 30 2c 20 2e 2e 2e 0a 09 27 50 6f 73 | ,......'ListboxTop',0,......'Pos |
18e0 | 69 74 69 6f 6e 27 2c 5b 37 39 2e 35 20 33 30 2e 35 20 37 35 20 32 37 5d 2c 20 2e 2e 2e 0a 09 27 | ition',[79.5.30.5.75.27],......' |
1900 | 53 74 72 69 6e 67 27 2c 27 52 65 61 64 20 69 6d 61 67 65 73 27 2c 20 2e 2e 2e 0a 20 20 20 27 54 | String','Read.images',........'T |
1920 | 61 67 27 2c 27 50 75 73 68 62 75 74 74 6f 6e 31 27 29 3b 0a 0a 75 69 63 6f 6e 74 72 6f 6c 28 27 | ag','Pushbutton1');..uicontrol(' |
1940 | 50 61 72 65 6e 74 27 2c 31 2c 20 2e 2e 2e 0a 09 27 55 6e 69 74 73 27 2c 27 70 6f 69 6e 74 73 27 | Parent',1,......'Units','points' |
1960 | 2c 20 2e 2e 2e 0a 09 27 43 61 6c 6c 62 61 63 6b 27 2c 27 63 6c 69 63 6b 5f 63 61 6c 69 62 3b 27 | ,......'Callback','click_calib;' |
1980 | 2c 20 2e 2e 2e 0a 09 27 4c 69 73 74 62 6f 78 54 6f 70 27 2c 30 2c 20 2e 2e 2e 0a 09 27 50 6f 73 | ,......'ListboxTop',0,......'Pos |
19a0 | 69 74 69 6f 6e 27 2c 5b 31 35 36 2e 37 35 20 33 30 2e 35 20 37 35 20 32 37 5d 2c 20 2e 2e 2e 0a | ition',[156.75.30.5.75.27],..... |
19c0 | 09 27 53 74 72 69 6e 67 27 2c 27 45 78 74 72 61 63 74 20 67 72 69 64 20 63 6f 72 6e 65 72 73 27 | .'String','Extract.grid.corners' |
19e0 | 2c 20 2e 2e 2e 0a 20 20 20 27 54 61 67 27 2c 27 50 75 73 68 62 75 74 74 6f 6e 31 27 29 3b 0a 0a | ,........'Tag','Pushbutton1');.. |
1a00 | 75 69 63 6f 6e 74 72 6f 6c 28 27 50 61 72 65 6e 74 27 2c 31 2c 20 2e 2e 2e 0a 09 27 55 6e 69 74 | uicontrol('Parent',1,......'Unit |
1a20 | 73 27 2c 27 70 6f 69 6e 74 73 27 2c 20 2e 2e 2e 0a 09 27 43 61 6c 6c 62 61 63 6b 27 2c 27 67 6f | s','points',......'Callback','go |
1a40 | 5f 63 61 6c 69 62 5f 6f 70 74 69 6d 3b 27 2c 20 2e 2e 2e 0a 09 27 4c 69 73 74 62 6f 78 54 6f 70 | _calib_optim;',......'ListboxTop |
1a60 | 27 2c 30 2c 20 2e 2e 2e 0a 09 27 50 6f 73 69 74 69 6f 6e 27 2c 5b 32 33 34 20 33 30 2e 35 20 37 | ',0,......'Position',[234.30.5.7 |
1a80 | 35 20 32 37 5d 2c 20 2e 2e 2e 0a 09 27 53 74 72 69 6e 67 27 2c 27 52 75 6e 20 63 61 6c 69 62 72 | 5.27],......'String','Run.calibr |
1aa0 | 61 74 69 6f 6e 27 2c 20 2e 2e 2e 0a 20 20 20 27 54 61 67 27 2c 27 50 75 73 68 62 75 74 74 6f 6e | ation',........'Tag','Pushbutton |
1ac0 | 31 27 29 3b 0a 0a 75 69 63 6f 6e 74 72 6f 6c 28 27 50 61 72 65 6e 74 27 2c 31 2c 20 2e 2e 2e 0a | 1');..uicontrol('Parent',1,..... |
1ae0 | 09 27 55 6e 69 74 73 27 2c 27 70 6f 69 6e 74 73 27 2c 20 2e 2e 2e 0a 09 27 43 61 6c 6c 62 61 63 | .'Units','points',......'Callbac |
1b00 | 6b 27 2c 27 67 72 61 70 68 6f 75 74 5f 63 61 6c 69 62 3b 27 2c 20 2e 2e 2e 0a 09 27 4c 69 73 74 | k','graphout_calib;',......'List |
1b20 | 62 6f 78 54 6f 70 27 2c 30 2c 20 2e 2e 2e 0a 09 27 50 6f 73 69 74 69 6f 6e 27 2c 5b 32 2e 32 35 | boxTop',0,......'Position',[2.25 |
1b40 | 20 31 2e 35 20 37 35 20 32 37 5d 2c 20 2e 2e 2e 0a 09 27 53 74 72 69 6e 67 27 2c 27 47 72 61 70 | .1.5.75.27],......'String','Grap |
1b60 | 68 69 63 20 6f 75 74 27 2c 20 2e 2e 2e 0a 20 20 20 27 54 61 67 27 2c 27 50 75 73 68 62 75 74 74 | hic.out',........'Tag','Pushbutt |
1b80 | 6f 6e 31 27 29 3b 0a 0a 75 69 63 6f 6e 74 72 6f 6c 28 27 50 61 72 65 6e 74 27 2c 31 2c 20 2e 2e | on1');..uicontrol('Parent',1,... |
1ba0 | 2e 0a 09 27 55 6e 69 74 73 27 2c 27 70 6f 69 6e 74 73 27 2c 20 2e 2e 2e 0a 09 27 43 61 6c 6c 62 | ...'Units','points',......'Callb |
1bc0 | 61 63 6b 27 2c 27 73 65 6c 65 63 74 5f 73 6f 6c 5f 77 69 74 68 5f 63 65 6e 74 65 72 3b 27 2c 20 | ack','select_sol_with_center;',. |
1be0 | 2e 2e 2e 0a 09 27 4c 69 73 74 62 6f 78 54 6f 70 27 2c 30 2c 20 2e 2e 2e 0a 09 27 50 6f 73 69 74 | .....'ListboxTop',0,......'Posit |
1c00 | 69 6f 6e 27 2c 5b 37 39 2e 35 20 31 2e 35 20 37 35 20 32 37 5d 2c 20 2e 2e 2e 0a 09 27 53 74 72 | ion',[79.5.1.5.75.27],......'Str |
1c20 | 69 6e 67 27 2c 27 73 6f 6c 2e 20 77 69 74 68 20 63 65 6e 74 65 72 27 2c 20 2e 2e 2e 0a 20 20 20 | ing','sol..with.center',........ |
1c40 | 27 54 61 67 27 2c 27 50 75 73 68 62 75 74 74 6f 6e 31 27 29 3b 0a 0a 75 69 63 6f 6e 74 72 6f 6c | 'Tag','Pushbutton1');..uicontrol |
1c60 | 28 27 50 61 72 65 6e 74 27 2c 31 2c 20 2e 2e 2e 0a 09 27 55 6e 69 74 73 27 2c 27 70 6f 69 6e 74 | ('Parent',1,......'Units','point |
1c80 | 73 27 2c 20 2e 2e 2e 0a 09 27 43 61 6c 6c 62 61 63 6b 27 2c 27 73 65 6c 65 63 74 5f 73 6f 6c 5f | s',......'Callback','select_sol_ |
1ca0 | 6e 6f 5f 63 65 6e 74 65 72 3b 27 2c 20 2e 2e 2e 0a 09 27 4c 69 73 74 62 6f 78 54 6f 70 27 2c 30 | no_center;',......'ListboxTop',0 |
1cc0 | 2c 20 2e 2e 2e 0a 09 27 50 6f 73 69 74 69 6f 6e 27 2c 5b 31 35 36 2e 37 35 20 31 2e 35 20 37 35 | ,......'Position',[156.75.1.5.75 |
1ce0 | 20 32 37 5d 2c 20 2e 2e 2e 0a 09 27 53 74 72 69 6e 67 27 2c 27 73 6f 6c 2e 20 77 69 74 68 6f 75 | .27],......'String','sol..withou |
1d00 | 74 20 63 65 6e 74 65 72 27 2c 20 2e 2e 2e 0a 20 20 20 27 54 61 67 27 2c 27 50 75 73 68 62 75 74 | t.center',........'Tag','Pushbut |
1d20 | 74 6f 6e 31 27 29 3b 0a 0a 75 69 63 6f 6e 74 72 6f 6c 28 27 50 61 72 65 6e 74 27 2c 31 2c 20 2e | ton1');..uicontrol('Parent',1,.. |
1d40 | 2e 2e 0a 09 27 55 6e 69 74 73 27 2c 27 70 6f 69 6e 74 73 27 2c 20 2e 2e 2e 0a 09 27 43 61 6c 6c | ....'Units','points',......'Call |
1d60 | 62 61 63 6b 27 2c 27 63 6c 6f 73 65 28 31 29 3b 27 2c 20 2e 2e 2e 0a 09 27 4c 69 73 74 62 6f 78 | back','close(1);',......'Listbox |
1d80 | 54 6f 70 27 2c 30 2c 20 2e 2e 2e 0a 09 27 50 6f 73 69 74 69 6f 6e 27 2c 5b 32 33 34 20 31 2e 35 | Top',0,......'Position',[234.1.5 |
1da0 | 20 37 35 20 32 37 5d 2c 20 2e 2e 2e 0a 09 27 53 74 72 69 6e 67 27 2c 27 45 78 69 74 27 2c 20 2e | .75.27],......'String','Exit',.. |
1dc0 | 2e 2e 0a 20 20 20 27 54 61 67 27 2c 27 50 75 73 68 62 75 74 74 6f 6e 31 27 29 3b 00 00 00 00 00 | ......'Tag','Pushbutton1');..... |
1de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 63 6c 69 63 6b 5f 63 61 6c 69 62 2e 6d 00 00 00 00 00 | TOOLBOX_calib/click_calib.m..... |
1e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1e60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
1e80 | 20 20 20 33 31 30 30 20 20 36 37 36 33 30 37 30 32 31 35 20 20 31 31 30 30 37 00 20 00 00 00 00 | ...3100..6763070215..11007...... |
1ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
1fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2000 | 0a 69 66 20 7e 65 78 69 73 74 28 27 49 5f 31 27 29 2c 0a 20 20 20 69 6d 61 5f 72 65 61 64 5f 63 | .if.~exist('I_1'),....ima_read_c |
2020 | 61 6c 69 62 3b 0a 65 6e 64 3b 0a 0a 25 77 69 6e 74 78 20 3d 20 31 30 3b 20 25 20 6e 65 69 67 62 | alib;.end;..%wintx.=.10;.%.neigb |
2040 | 6f 72 68 6f 6f 64 20 6f 66 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 66 6f 72 0a 25 77 69 6e 74 79 | orhood.of.integration.for.%winty |
2060 | 20 3d 20 31 30 3b 20 25 20 74 68 65 20 63 6f 72 6e 65 72 20 66 69 6e 64 65 72 0a 0a 66 70 72 69 | .=.10;.%.the.corner.finder..fpri |
2080 | 6e 74 66 28 31 2c 27 5c 6e 45 78 74 72 61 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 67 72 69 64 20 | ntf(1,'\nExtraction.of.the.grid. |
20a0 | 63 6f 72 6e 65 72 73 20 6f 6e 20 74 68 65 20 69 6d 61 67 65 73 5c 6e 27 29 3b 0a 0a 64 69 73 70 | corners.on.the.images\n');..disp |
20c0 | 28 27 57 69 6e 64 6f 77 20 73 69 7a 65 20 66 6f 72 20 63 6f 72 6e 65 72 20 66 69 6e 64 65 72 20 | ('Window.size.for.corner.finder. |
20e0 | 28 77 69 6e 74 78 20 61 6e 64 20 77 69 6e 74 79 29 3a 27 29 3b 0a 77 69 6e 74 78 20 3d 20 69 6e | (wintx.and.winty):');.wintx.=.in |
2100 | 70 75 74 28 27 77 69 6e 74 78 20 28 5b 5d 20 3d 20 35 29 20 3d 20 27 29 3b 0a 69 66 20 69 73 65 | put('wintx.([].=.5).=.');.if.ise |
2120 | 6d 70 74 79 28 77 69 6e 74 78 29 2c 20 77 69 6e 74 78 20 3d 20 35 3b 20 65 6e 64 3b 0a 77 69 6e | mpty(wintx),.wintx.=.5;.end;.win |
2140 | 74 78 20 3d 20 72 6f 75 6e 64 28 77 69 6e 74 78 29 3b 0a 77 69 6e 74 79 20 3d 20 69 6e 70 75 74 | tx.=.round(wintx);.winty.=.input |
2160 | 28 27 77 69 6e 74 79 20 28 5b 5d 20 3d 20 35 29 20 3d 20 27 29 3b 0a 69 66 20 69 73 65 6d 70 74 | ('winty.([].=.5).=.');.if.isempt |
2180 | 79 28 77 69 6e 74 79 29 2c 20 77 69 6e 74 79 20 3d 20 35 3b 20 65 6e 64 3b 0a 77 69 6e 74 79 20 | y(winty),.winty.=.5;.end;.winty. |
21a0 | 3d 20 72 6f 75 6e 64 28 77 69 6e 74 79 29 3b 0a 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 57 69 6e | =.round(winty);...fprintf(1,'Win |
21c0 | 64 6f 77 20 73 69 7a 65 20 3d 20 25 64 78 25 64 5c 6e 27 2c 32 2a 77 69 6e 74 78 2b 31 2c 32 2a | dow.size.=.%dx%d\n',2*wintx+1,2* |
21e0 | 77 69 6e 74 79 2b 31 29 3b 0a 0a 0a 64 69 73 70 28 27 57 41 52 4e 4e 47 21 21 21 20 44 6f 20 6e | winty+1);...disp('WARNNG!!!.Do.n |
2200 | 6f 74 20 66 6f 72 67 65 74 20 74 6f 20 63 68 61 6e 67 65 20 64 58 5f 64 65 66 61 75 6c 74 20 61 | ot.forget.to.change.dX_default.a |
2220 | 6e 64 20 64 59 5f 64 65 66 61 75 6c 74 20 69 6e 20 63 6c 69 63 6b 5f 63 61 6c 69 62 2e 6d 21 21 | nd.dY_default.in.click_calib.m!! |
2240 | 21 27 29 0a 0a 0a 25 20 44 65 66 61 75 6c 74 20 73 69 7a 65 20 6f 66 20 74 68 65 20 70 61 74 74 | !')...%.Default.size.of.the.patt |
2260 | 65 72 6e 20 73 71 75 61 72 65 73 3b 0a 0a 25 20 53 65 74 75 70 20 6f 66 20 4a 59 20 28 6f 6c 64 | ern.squares;..%.Setup.of.JY.(old |
2280 | 20 61 74 20 43 61 6c 74 65 63 68 29 0a 64 58 5f 64 65 66 61 75 6c 74 20 3d 20 32 31 2e 39 32 35 | .at.Caltech).dX_default.=.21.925 |
22a0 | 30 2f 31 31 3b 0a 64 59 5f 64 65 66 61 75 6c 74 20 3d 20 31 38 2e 31 32 35 30 2f 39 3b 0a 0a 25 | 0/11;.dY_default.=.18.1250/9;..% |
22c0 | 20 53 65 74 75 70 20 6f 66 20 4a 59 20 28 6e 65 77 20 61 74 20 49 6e 74 65 6c 29 0a 64 58 5f 64 | .Setup.of.JY.(new.at.Intel).dX_d |
22e0 | 65 66 61 75 6c 74 20 3d 20 31 2e 39 37 35 30 3b 0a 64 59 5f 64 65 66 61 75 6c 74 20 3d 20 31 2e | efault.=.1.9750;.dY_default.=.1. |
2300 | 39 38 36 35 3b 0a 0a 25 20 53 65 74 75 70 20 6f 66 20 47 65 72 6d 61 6e 0a 64 58 5f 64 65 66 61 | 9865;..%.Setup.of.German.dX_defa |
2320 | 75 6c 74 20 3d 20 31 30 2e 31 36 3b 0a 64 59 5f 64 65 66 61 75 6c 74 20 3d 20 31 30 2e 31 36 3b | ult.=.10.16;.dY_default.=.10.16; |
2340 | 0a 0a 25 20 53 65 74 75 70 20 6f 66 20 4a 59 20 28 6e 65 77 20 61 74 20 49 6e 74 65 6c 29 0a 64 | ..%.Setup.of.JY.(new.at.Intel).d |
2360 | 58 5f 64 65 66 61 75 6c 74 20 3d 20 31 2e 39 37 35 30 2a 32 2e 35 34 3b 0a 64 59 5f 64 65 66 61 | X_default.=.1.9750*2.54;.dY_defa |
2380 | 75 6c 74 20 3d 20 31 2e 39 38 36 35 2a 32 2e 35 34 3b 0a 0a 25 20 53 65 74 75 70 20 6f 66 20 4c | ult.=.1.9865*2.54;..%.Setup.of.L |
23a0 | 75 69 73 20 61 6e 64 20 45 6e 72 69 63 6f 0a 64 58 5f 64 65 66 61 75 6c 74 20 3d 20 36 37 2e 37 | uis.and.Enrico.dX_default.=.67.7 |
23c0 | 2f 31 36 3b 0a 64 59 5f 64 65 66 61 75 6c 74 20 3d 20 35 30 2e 36 35 2f 31 32 3b 0a 0a 0a 0a 0a | /16;.dY_default.=.50.65/12;..... |
23e0 | 0a 25 20 55 73 65 66 75 6c 20 6f 70 74 69 6f 6e 20 74 6f 20 61 64 64 20 69 6d 61 67 65 73 3a 0a | .%.Useful.option.to.add.images:. |
2400 | 6b 6b 5f 66 69 72 73 74 20 3d 20 69 6e 70 75 74 28 27 53 74 61 72 74 20 69 6d 61 67 65 20 6e 75 | kk_first.=.input('Start.image.nu |
2420 | 6d 62 65 72 20 28 5b 5d 3d 31 3d 66 69 72 73 74 29 3a 20 27 29 3b 0a 0a 69 66 20 69 73 65 6d 70 | mber.([]=1=first):.');..if.isemp |
2440 | 74 79 28 6b 6b 5f 66 69 72 73 74 29 2c 20 6b 6b 5f 66 69 72 73 74 20 3d 20 31 3b 20 65 6e 64 3b | ty(kk_first),.kk_first.=.1;.end; |
2460 | 0a 0a 66 6f 72 20 6b 6b 20 3d 20 6b 6b 5f 66 69 72 73 74 3a 6e 5f 69 6d 61 2c 0a 20 20 20 63 6c | ..for.kk.=.kk_first:n_ima,....cl |
2480 | 69 63 6b 5f 69 6d 61 5f 63 61 6c 69 62 3b 20 25 53 69 6d 70 6c 65 20 76 65 72 73 69 6f 6e 0a 20 | ick_ima_calib;.%Simple.version.. |
24a0 | 20 20 25 69 6e 69 74 5f 63 61 6c 69 62 3b 20 25 61 64 76 61 6e 63 65 64 20 76 65 73 69 6f 6e 20 | ..%init_calib;.%advanced.vesion. |
24c0 | 28 6d 6f 72 65 20 6d 65 73 73 79 29 0a 65 6e 64 3b 0a 0a 0a 0a 73 74 72 69 6e 67 5f 73 61 76 65 | (more.messy).end;....string_save |
24e0 | 20 3d 20 27 73 61 76 65 20 63 61 6c 69 62 5f 64 61 74 61 20 77 69 6e 74 78 20 77 69 6e 74 79 20 | .=.'save.calib_data.wintx.winty. |
2500 | 6e 5f 69 6d 61 20 74 79 70 65 5f 6e 75 6d 62 65 72 69 6e 67 20 4e 5f 73 6c 6f 74 73 20 66 69 72 | n_ima.type_numbering.N_slots.fir |
2520 | 73 74 5f 6e 75 6d 20 69 6d 61 67 65 5f 6e 75 6d 62 65 72 73 20 66 6f 72 6d 61 74 5f 69 6d 61 67 | st_num.image_numbers.format_imag |
2540 | 65 20 63 61 6c 69 62 5f 6e 61 6d 65 20 48 63 61 6c 20 57 63 61 6c 20 6e 78 20 6e 79 20 6d 61 70 | e.calib_name.Hcal.Wcal.nx.ny.map |
2560 | 20 64 58 5f 64 65 66 61 75 6c 74 20 64 59 5f 64 65 66 61 75 6c 74 20 64 58 20 64 59 27 3b 0a 0a | .dX_default.dY_default.dX.dY';.. |
2580 | 66 6f 72 20 6b 6b 20 3d 20 31 3a 6e 5f 69 6d 61 2c 0a 20 20 20 73 74 72 69 6e 67 5f 73 61 76 65 | for.kk.=.1:n_ima,....string_save |
25a0 | 20 3d 20 5b 73 74 72 69 6e 67 5f 73 61 76 65 20 27 20 58 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b | .=.[string_save.'.X_'.num2str(kk |
25c0 | 29 20 27 20 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 48 5f 27 20 6e 75 6d 32 73 74 | ).'.x_'.num2str(kk).'.H_'.num2st |
25e0 | 72 28 6b 6b 29 20 27 20 6e 5f 73 71 5f 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 6e | r(kk).'.n_sq_x_'.num2str(kk).'.n |
2600 | 5f 73 71 5f 79 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 5d 3b 0a 65 6e 64 3b 0a 0a 65 76 61 6c | _sq_y_'.num2str(kk)];.end;..eval |
2620 | 28 73 74 72 69 6e 67 5f 73 61 76 65 29 3b 0a 0a 67 6f 5f 63 61 6c 69 62 5f 6f 70 74 69 6d 3b 0a | (string_save);..go_calib_optim;. |
2640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
26a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
26c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
26e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
27a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
27c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
27e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2800 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 63 6c 69 63 6b 5f 69 6d 61 5f 63 61 6c 69 62 2e 6d 00 | TOOLBOX_calib/click_ima_calib.m. |
2820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2860 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
2880 | 20 20 31 34 35 33 34 20 20 36 37 36 33 30 37 30 32 31 36 20 20 31 31 36 37 33 00 20 00 00 00 00 | ..14534..6763070216..11673...... |
28a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
28c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
28e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
29a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
29c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
29e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
2a00 | 09 25 20 43 6c 65 61 6e 65 64 2d 75 70 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 6e 69 74 5f 63 61 | .%.Cleaned-up.version.of.init_ca |
2a20 | 6c 69 62 2e 6d 0a 0a 09 65 76 61 6c 28 5b 27 49 20 3d 20 49 5f 27 20 6e 75 6d 32 73 74 72 28 6b | lib.m...eval(['I.=.I_'.num2str(k |
2a40 | 6b 29 20 27 3b 27 5d 29 3b 0a 09 0a 09 66 69 67 75 72 65 28 32 29 3b 0a 09 69 6d 61 67 65 28 49 | k).';']);....figure(2);..image(I |
2a60 | 29 3b 0a 20 20 20 63 6f 6c 6f 72 6d 61 70 28 6d 61 70 29 3b 0a 20 20 20 0a 20 20 20 74 69 74 6c | );....colormap(map);........titl |
2a80 | 65 28 5b 27 43 6c 69 63 6b 20 6f 6e 20 74 68 65 20 66 6f 75 72 20 65 78 74 72 65 6d 65 20 63 6f | e(['Click.on.the.four.extreme.co |
2aa0 | 72 6e 65 72 73 20 6f 66 20 74 68 65 20 72 65 63 74 61 6e 67 75 6c 61 72 20 70 61 74 74 65 72 6e | rners.of.the.rectangular.pattern |
2ac0 | 2e 2e 2e 20 49 6d 61 67 65 20 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 5d 29 3b 0a 20 20 20 0a 20 | ....Image.'.num2str(kk)]);...... |
2ae0 | 20 20 64 69 73 70 28 27 43 6c 69 63 6b 20 6f 6e 20 74 68 65 20 66 6f 75 72 20 65 78 74 72 65 6d | ..disp('Click.on.the.four.extrem |
2b00 | 65 20 63 6f 72 6e 65 72 73 20 6f 66 20 74 68 65 20 72 65 63 74 61 6e 67 75 6c 61 72 20 63 6f 6d | e.corners.of.the.rectangular.com |
2b20 | 70 6c 65 74 65 20 70 61 74 74 65 72 6e 2e 2e 2e 27 29 3b 0a 20 20 20 0a 20 20 20 5b 78 2c 79 5d | plete.pattern...');........[x,y] |
2b40 | 20 3d 20 67 69 6e 70 75 74 33 28 34 29 3b 0a 20 20 20 0a 20 20 20 5b 58 63 2c 67 6f 6f 64 2c 62 | .=.ginput3(4);........[Xc,good,b |
2b60 | 61 64 2c 74 79 70 65 5d 20 3d 20 63 6f 72 6e 65 72 66 69 6e 64 65 72 28 5b 78 27 3b 79 27 5d 2c | ad,type].=.cornerfinder([x';y'], |
2b80 | 49 2c 77 69 6e 74 79 2c 77 69 6e 74 78 29 3b 20 25 20 74 68 65 20 66 6f 75 72 20 63 6f 72 6e 65 | I,winty,wintx);.%.the.four.corne |
2ba0 | 72 73 0a 20 20 20 0a 20 20 20 78 20 3d 20 58 63 28 31 2c 3a 29 27 3b 0a 20 20 20 79 20 3d 20 58 | rs........x.=.Xc(1,:)';....y.=.X |
2bc0 | 63 28 32 2c 3a 29 27 3b 0a 20 20 20 0a 20 20 20 5b 79 2c 69 6e 64 79 5d 20 3d 20 73 6f 72 74 28 | c(2,:)';........[y,indy].=.sort( |
2be0 | 79 29 3b 0a 20 20 20 78 20 3d 20 78 28 69 6e 64 79 29 3b 0a 20 20 20 0a 20 20 20 69 66 20 28 78 | y);....x.=.x(indy);........if.(x |
2c00 | 28 32 29 20 3e 20 78 28 31 29 29 2c 0a 20 20 20 20 20 20 78 34 20 3d 20 78 28 31 29 3b 79 34 20 | (2).>.x(1)),.......x4.=.x(1);y4. |
2c20 | 3d 20 79 28 31 29 3b 20 78 33 20 3d 20 78 28 32 29 3b 20 79 33 20 3d 20 79 28 32 29 3b 0a 20 20 | =.y(1);.x3.=.x(2);.y3.=.y(2);... |
2c40 | 20 65 6c 73 65 0a 20 20 20 20 20 20 78 34 20 3d 20 78 28 32 29 3b 79 34 20 3d 20 79 28 32 29 3b | .else.......x4.=.x(2);y4.=.y(2); |
2c60 | 20 78 33 20 3d 20 78 28 31 29 3b 20 79 33 20 3d 20 79 28 31 29 3b 0a 20 20 20 65 6e 64 3b 0a 20 | .x3.=.x(1);.y3.=.y(1);....end;.. |
2c80 | 20 20 69 66 20 28 78 28 33 29 20 3e 20 78 28 34 29 29 2c 0a 20 20 20 20 20 20 78 32 20 3d 20 78 | ..if.(x(3).>.x(4)),.......x2.=.x |
2ca0 | 28 33 29 3b 79 32 20 3d 20 79 28 33 29 3b 20 78 31 20 3d 20 78 28 34 29 3b 20 79 31 20 3d 20 79 | (3);y2.=.y(3);.x1.=.x(4);.y1.=.y |
2cc0 | 28 34 29 3b 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 78 32 20 3d 20 78 28 34 29 3b 79 32 20 | (4);....else.......x2.=.x(4);y2. |
2ce0 | 3d 20 79 28 34 29 3b 20 78 31 20 3d 20 78 28 33 29 3b 20 79 31 20 3d 20 79 28 33 29 3b 0a 20 20 | =.y(4);.x1.=.x(3);.y1.=.y(3);... |
2d00 | 20 65 6e 64 3b 0a 20 20 20 0a 20 20 20 78 20 3d 20 5b 78 31 3b 78 32 3b 78 33 3b 78 34 5d 3b 0a | .end;........x.=.[x1;x2;x3;x4];. |
2d20 | 20 20 20 79 20 3d 20 5b 79 31 3b 79 32 3b 79 33 3b 79 34 5d 3b 0a 20 20 20 0a 20 20 20 0a 20 20 | ...y.=.[y1;y2;y3;y4];........... |
2d40 | 20 66 69 67 75 72 65 28 32 29 3b 20 68 6f 6c 64 20 6f 6e 3b 0a 20 20 20 70 6c 6f 74 28 5b 78 3b | .figure(2);.hold.on;....plot([x; |
2d60 | 78 28 31 29 5d 2c 5b 79 3b 79 28 31 29 5d 2c 27 67 2d 27 29 3b 0a 20 20 20 70 6c 6f 74 28 78 2c | x(1)],[y;y(1)],'g-');....plot(x, |
2d80 | 79 2c 27 6f 67 27 29 3b 0a 20 20 20 68 78 3d 74 65 78 74 28 28 78 28 34 29 2b 78 28 33 29 29 2f | y,'og');....hx=text((x(4)+x(3))/ |
2da0 | 32 2c 28 79 28 34 29 2b 79 28 33 29 29 2f 32 20 2d 20 32 30 2c 27 58 27 29 3b 0a 20 20 20 73 65 | 2,(y(4)+y(3))/2.-.20,'X');....se |
2dc0 | 74 28 68 78 2c 27 63 6f 6c 6f 72 27 2c 27 67 27 2c 27 46 6f 6e 74 73 69 7a 65 27 2c 31 34 29 3b | t(hx,'color','g','Fontsize',14); |
2de0 | 0a 20 20 20 68 79 3d 74 65 78 74 28 28 78 28 34 29 2b 78 28 31 29 29 2f 32 2d 32 30 2c 28 79 28 | ....hy=text((x(4)+x(1))/2-20,(y( |
2e00 | 34 29 2b 79 28 31 29 29 2f 32 2c 27 59 27 29 3b 0a 20 20 20 73 65 74 28 68 79 2c 27 63 6f 6c 6f | 4)+y(1))/2,'Y');....set(hy,'colo |
2e20 | 72 27 2c 27 67 27 2c 27 46 6f 6e 74 73 69 7a 65 27 2c 31 34 29 3b 0a 20 20 20 68 6f 6c 64 20 6f | r','g','Fontsize',14);....hold.o |
2e40 | 66 66 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 25 20 54 72 79 20 74 6f 20 61 75 74 6f 6d 61 74 69 | ff;............%.Try.to.automati |
2e60 | 63 61 6c 6c 79 20 63 6f 75 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 71 75 61 72 65 | cally.count.the.number.of.square |
2e80 | 73 20 69 6e 20 74 68 65 20 67 72 69 64 0a 20 20 20 0a 20 20 20 6e 5f 73 71 5f 78 31 20 3d 20 63 | s.in.the.grid........n_sq_x1.=.c |
2ea0 | 6f 75 6e 74 5f 73 71 75 61 72 65 73 28 49 2c 78 31 2c 79 31 2c 78 32 2c 79 32 2c 77 69 6e 74 78 | ount_squares(I,x1,y1,x2,y2,wintx |
2ec0 | 29 3b 0a 20 20 20 6e 5f 73 71 5f 78 32 20 3d 20 63 6f 75 6e 74 5f 73 71 75 61 72 65 73 28 49 2c | );....n_sq_x2.=.count_squares(I, |
2ee0 | 78 33 2c 79 33 2c 78 34 2c 79 34 2c 77 69 6e 74 78 29 3b 0a 20 20 20 6e 5f 73 71 5f 79 31 20 3d | x3,y3,x4,y4,wintx);....n_sq_y1.= |
2f00 | 20 63 6f 75 6e 74 5f 73 71 75 61 72 65 73 28 49 2c 78 32 2c 79 32 2c 78 33 2c 79 33 2c 77 69 6e | .count_squares(I,x2,y2,x3,y3,win |
2f20 | 74 78 29 3b 0a 20 20 20 6e 5f 73 71 5f 79 32 20 3d 20 63 6f 75 6e 74 5f 73 71 75 61 72 65 73 28 | tx);....n_sq_y2.=.count_squares( |
2f40 | 49 2c 78 34 2c 79 34 2c 78 31 2c 79 31 2c 77 69 6e 74 78 29 3b 0a 20 20 20 0a 20 20 0a 20 20 20 | I,x4,y4,x1,y1,wintx);........... |
2f60 | 0a 20 20 20 25 20 49 66 20 63 6f 75 6c 64 20 6e 6f 74 20 63 6f 75 6e 74 20 74 68 65 20 6e 75 6d | ....%.If.could.not.count.the.num |
2f80 | 62 65 72 20 6f 66 20 73 71 75 61 72 65 73 2c 20 65 6e 74 65 72 20 6d 61 6e 75 61 6c 6c 79 0a 20 | ber.of.squares,.enter.manually.. |
2fa0 | 20 20 0a 20 20 20 69 66 20 28 6e 5f 73 71 5f 78 31 7e 3d 6e 5f 73 71 5f 78 32 29 7c 28 6e 5f 73 | ......if.(n_sq_x1~=n_sq_x2)|(n_s |
2fc0 | 71 5f 79 31 7e 3d 6e 5f 73 71 5f 79 32 29 2c 0a 20 20 20 20 20 20 0a 0a 09 20 64 69 73 70 28 27 | q_y1~=n_sq_y2),...........disp(' |
2fe0 | 43 6f 75 6c 64 20 6e 6f 74 20 63 6f 75 6e 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 73 71 | Could.not.count.the.number.of.sq |
3000 | 75 61 72 65 73 20 69 6e 20 74 68 65 20 67 72 69 64 2e 20 45 6e 74 65 72 20 6d 61 6e 75 61 6c 6c | uares.in.the.grid..Enter.manuall |
3020 | 79 2e 27 29 3b 0a 09 20 6e 5f 73 71 5f 78 20 3d 20 69 6e 70 75 74 28 27 4e 75 6d 62 65 72 20 6f | y.');...n_sq_x.=.input('Number.o |
3040 | 66 20 73 71 75 61 72 65 73 20 61 6c 6f 6e 67 20 74 68 65 20 58 20 64 69 72 65 63 74 69 6f 6e 20 | f.squares.along.the.X.direction. |
3060 | 28 5b 5d 3d 31 30 29 20 3d 20 27 29 3b 20 25 36 0a 09 20 69 66 20 69 73 65 6d 70 74 79 28 6e 5f | ([]=10).=.');.%6...if.isempty(n_ |
3080 | 73 71 5f 78 29 2c 20 6e 5f 73 71 5f 78 20 3d 20 31 30 3b 20 65 6e 64 3b 0a 09 20 6e 5f 73 71 5f | sq_x),.n_sq_x.=.10;.end;...n_sq_ |
30a0 | 79 20 3d 20 69 6e 70 75 74 28 27 4e 75 6d 62 65 72 20 6f 66 20 73 71 75 61 72 65 73 20 61 6c 6f | y.=.input('Number.of.squares.alo |
30c0 | 6e 67 20 74 68 65 20 59 20 64 69 72 65 63 74 69 6f 6e 20 28 5b 5d 3d 31 30 29 20 3d 20 27 29 3b | ng.the.Y.direction.([]=10).=.'); |
30e0 | 20 25 36 0a 09 20 69 66 20 69 73 65 6d 70 74 79 28 6e 5f 73 71 5f 79 29 2c 20 6e 5f 73 71 5f 79 | .%6...if.isempty(n_sq_y),.n_sq_y |
3100 | 20 3d 20 31 30 3b 20 65 6e 64 3b 20 0a 20 20 20 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 | .=.10;.end;.........else........ |
3120 | 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 6e 5f 73 71 5f 78 20 3d 20 6e 5f 73 71 5f 78 31 3b | ...............n_sq_x.=.n_sq_x1; |
3140 | 0a 20 20 20 20 20 20 6e 5f 73 71 5f 79 20 3d 20 6e 5f 73 71 5f 79 31 3b 0a 20 20 20 20 20 20 0a | .......n_sq_y.=.n_sq_y1;........ |
3160 | 20 20 20 65 6e 64 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 25 20 45 6e 74 65 72 20 74 68 65 20 73 | ...end;............%.Enter.the.s |
3180 | 69 7a 65 20 6f 66 20 65 61 63 68 20 73 71 75 61 72 65 0a 20 20 20 0a 20 20 20 64 58 20 3d 20 69 | ize.of.each.square........dX.=.i |
31a0 | 6e 70 75 74 28 5b 27 53 69 7a 65 20 64 58 20 6f 66 20 65 61 63 68 20 73 71 75 61 72 65 20 61 6c | nput(['Size.dX.of.each.square.al |
31c0 | 6f 6e 67 20 74 68 65 20 58 20 64 69 72 65 63 74 69 6f 6e 20 28 5b 5d 3d 27 20 6e 75 6d 32 73 74 | ong.the.X.direction.([]='.num2st |
31e0 | 72 28 64 58 5f 64 65 66 61 75 6c 74 29 20 27 63 6d 29 20 3d 20 27 5d 29 3b 0a 20 20 09 64 59 20 | r(dX_default).'cm).=.']);....dY. |
3200 | 3d 20 69 6e 70 75 74 28 5b 27 53 69 7a 65 20 64 59 20 6f 66 20 65 61 63 68 20 73 71 75 61 72 65 | =.input(['Size.dY.of.each.square |
3220 | 20 61 6c 6f 6e 67 20 74 68 65 20 59 20 64 69 72 65 63 74 69 6f 6e 20 28 5b 5d 3d 27 20 6e 75 6d | .along.the.Y.direction.([]='.num |
3240 | 32 73 74 72 28 64 59 5f 64 65 66 61 75 6c 74 29 20 27 63 6d 29 20 3d 20 27 5d 29 3b 0a 09 69 66 | 2str(dY_default).'cm).=.']);..if |
3260 | 20 69 73 65 6d 70 74 79 28 64 58 29 2c 20 64 58 20 3d 20 64 58 5f 64 65 66 61 75 6c 74 3b 20 65 | .isempty(dX),.dX.=.dX_default;.e |
3280 | 6e 64 3b 0a 09 69 66 20 69 73 65 6d 70 74 79 28 64 59 29 2c 20 64 59 20 3d 20 64 59 5f 64 65 66 | nd;..if.isempty(dY),.dY.=.dY_def |
32a0 | 61 75 6c 74 3b 20 65 6e 64 3b 0a 09 0a 20 20 20 0a 20 20 20 0a 20 20 20 25 20 43 6f 6d 70 75 74 | ault;.end;..............%.Comput |
32c0 | 65 20 74 68 65 20 69 6e 73 69 64 65 20 70 6f 69 6e 74 73 20 74 68 72 6f 75 67 68 20 63 6f 6d 70 | e.the.inside.points.through.comp |
32e0 | 75 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 6c 61 6e 61 72 20 68 6f 6d 6f 67 72 61 70 68 79 | utation.of.the.planar.homography |
3300 | 20 28 63 6f 6c 6c 69 6e 65 61 74 69 6f 6e 29 0a 20 20 20 0a 09 61 30 30 20 3d 20 5b 78 28 31 29 | .(collineation)......a00.=.[x(1) |
3320 | 3b 79 28 31 29 3b 31 5d 3b 0a 09 61 31 30 20 3d 20 5b 78 28 32 29 3b 79 28 32 29 3b 31 5d 3b 0a | ;y(1);1];..a10.=.[x(2);y(2);1];. |
3340 | 09 61 31 31 20 3d 20 5b 78 28 33 29 3b 79 28 33 29 3b 31 5d 3b 0a 09 61 30 31 20 3d 20 5b 78 28 | .a11.=.[x(3);y(3);1];..a01.=.[x( |
3360 | 34 29 3b 79 28 34 29 3b 31 5d 3b 0a 0a 0a 09 25 20 43 6f 6d 70 75 74 65 20 74 68 65 20 70 6c 61 | 4);y(4);1];....%.Compute.the.pla |
3380 | 6e 61 72 74 20 63 6f 6c 6c 69 6e 65 61 74 69 6f 6e 3a 20 28 72 65 74 75 72 6e 20 74 68 65 20 6e | nart.collineation:.(return.the.n |
33a0 | 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 20 6d 61 74 72 69 63 65 20 61 73 20 77 65 6c 6c 29 0a 0a 09 | ormalization.matrice.as.well)... |
33c0 | 5b 48 6f 6d 6f 2c 48 6e 6f 72 6d 2c 69 6e 76 5f 48 6e 6f 72 6d 5d 20 3d 20 63 6f 6d 70 75 74 65 | [Homo,Hnorm,inv_Hnorm].=.compute |
33e0 | 5f 63 6f 6c 6c 69 6e 65 61 74 69 6f 6e 20 28 61 30 30 2c 20 61 31 30 2c 20 61 31 31 2c 20 61 30 | _collineation.(a00,.a10,.a11,.a0 |
3400 | 31 29 3b 0a 0a 0a 09 25 20 42 75 69 6c 64 20 74 68 65 20 67 72 69 64 20 75 73 69 6e 67 20 74 68 | 1);....%.Build.the.grid.using.th |
3420 | 65 20 70 6c 61 6e 61 72 20 63 6f 6c 6c 69 6e 65 61 74 69 6f 6e 3a 0a 0a 09 78 5f 6c 20 3d 20 28 | e.planar.collineation:...x_l.=.( |
3440 | 28 30 3a 6e 5f 73 71 5f 78 29 27 2a 6f 6e 65 73 28 31 2c 6e 5f 73 71 5f 79 2b 31 29 29 2f 6e 5f | (0:n_sq_x)'*ones(1,n_sq_y+1))/n_ |
3460 | 73 71 5f 78 3b 0a 20 20 20 79 5f 6c 20 3d 20 28 6f 6e 65 73 28 6e 5f 73 71 5f 78 2b 31 2c 31 29 | sq_x;....y_l.=.(ones(n_sq_x+1,1) |
3480 | 2a 28 30 3a 6e 5f 73 71 5f 79 29 29 2f 6e 5f 73 71 5f 79 3b 0a 20 20 20 70 74 73 20 3d 20 5b 78 | *(0:n_sq_y))/n_sq_y;....pts.=.[x |
34a0 | 5f 6c 28 3a 29 20 79 5f 6c 28 3a 29 20 6f 6e 65 73 28 28 6e 5f 73 71 5f 78 2b 31 29 2a 28 6e 5f | _l(:).y_l(:).ones((n_sq_x+1)*(n_ |
34c0 | 73 71 5f 79 2b 31 29 2c 31 29 5d 27 3b 0a 20 20 20 0a 20 20 20 58 58 20 3d 20 48 6f 6d 6f 2a 70 | sq_y+1),1)]';........XX.=.Homo*p |
34e0 | 74 73 3b 0a 09 58 58 20 3d 20 58 58 28 31 3a 32 2c 3a 29 20 2e 2f 20 28 6f 6e 65 73 28 32 2c 31 | ts;..XX.=.XX(1:2,:)../.(ones(2,1 |
3500 | 29 2a 58 58 28 33 2c 3a 29 29 3b 0a 0a 20 20 20 0a 20 20 20 25 20 43 6f 6d 70 6c 65 74 65 20 73 | )*XX(3,:));.........%.Complete.s |
3520 | 69 7a 65 20 6f 66 20 74 68 65 20 72 65 63 74 61 6e 67 6c 65 0a 20 20 20 0a 20 20 20 57 20 3d 20 | ize.of.the.rectangle........W.=. |
3540 | 6e 5f 73 71 5f 78 2a 64 58 3b 0a 20 20 20 4c 20 3d 20 6e 5f 73 71 5f 79 2a 64 59 3b 0a 20 20 20 | n_sq_x*dX;....L.=.n_sq_y*dY;.... |
3560 | 0a 20 20 20 0a 20 20 20 0a 20 20 20 0a 20 20 20 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 | ................%%%%%%%%%%%%%%%% |
3580 | 25 25 25 25 25 25 25 25 20 41 44 44 49 54 49 4f 4e 41 4c 20 53 54 55 46 46 20 49 4e 20 54 48 45 | %%%%%%%%.ADDITIONAL.STUFF.IN.THE |
35a0 | 20 43 41 53 45 20 4f 46 20 48 49 47 48 4c 59 20 44 49 53 54 4f 52 54 45 44 20 49 4d 41 47 45 53 | .CASE.OF.HIGHLY.DISTORTED.IMAGES |
35c0 | 20 25 25 25 25 25 25 25 25 25 25 25 25 25 0a 20 20 20 66 69 67 75 72 65 28 32 29 3b 0a 20 20 20 | .%%%%%%%%%%%%%....figure(2);.... |
35e0 | 68 6f 6c 64 20 6f 6e 3b 0a 20 20 20 70 6c 6f 74 28 58 58 28 31 2c 3a 29 2c 58 58 28 32 2c 3a 29 | hold.on;....plot(XX(1,:),XX(2,:) |
3600 | 2c 27 72 2b 27 29 3b 0a 20 20 20 74 69 74 6c 65 28 27 54 68 65 20 72 65 64 20 63 72 6f 73 73 65 | ,'r+');....title('The.red.crosse |
3620 | 73 20 73 68 6f 75 6c 64 20 62 65 20 63 6c 6f 73 65 20 74 6f 20 74 68 65 20 69 6d 61 67 65 20 63 | s.should.be.close.to.the.image.c |
3640 | 6f 72 6e 65 72 73 27 29 3b 0a 20 20 20 68 6f 6c 64 20 6f 66 66 3b 0a 20 20 20 0a 20 20 20 64 69 | orners');....hold.off;........di |
3660 | 73 70 28 27 49 66 20 74 68 65 20 67 75 65 73 73 65 64 20 67 72 69 64 20 63 6f 72 6e 65 72 73 20 | sp('If.the.guessed.grid.corners. |
3680 | 28 72 65 64 20 63 72 6f 73 73 65 73 20 6f 6e 20 74 68 65 20 69 6d 61 67 65 29 20 61 72 65 20 6e | (red.crosses.on.the.image).are.n |
36a0 | 6f 74 20 63 6c 6f 73 65 20 74 6f 20 74 68 65 20 61 63 74 75 61 6c 20 63 6f 72 6e 65 72 73 2c 27 | ot.close.to.the.actual.corners,' |
36c0 | 29 3b 0a 20 20 20 64 69 73 70 28 27 69 74 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 65 | );....disp('it.is.necessary.to.e |
36e0 | 6e 74 65 72 20 61 6e 20 69 6e 69 74 69 61 6c 20 67 75 65 73 73 20 66 6f 72 20 74 68 65 20 72 61 | nter.an.initial.guess.for.the.ra |
3700 | 64 69 61 6c 20 64 69 73 74 6f 72 74 69 6f 6e 20 66 61 63 74 6f 72 20 6b 63 20 28 75 73 65 66 75 | dial.distortion.factor.kc.(usefu |
3720 | 6c 20 66 6f 72 20 73 75 62 70 69 78 65 6c 20 64 65 74 65 63 74 69 6f 6e 29 27 29 3b 0a 20 20 20 | l.for.subpixel.detection)');.... |
3740 | 71 75 65 73 74 5f 64 69 73 74 6f 72 74 20 3d 20 69 6e 70 75 74 28 27 4e 65 65 64 20 6f 66 20 61 | quest_distort.=.input('Need.of.a |
3760 | 6e 20 69 6e 69 74 69 61 6c 20 67 75 65 73 73 20 66 6f 72 20 64 69 73 74 6f 72 74 69 6f 6e 3f 20 | n.initial.guess.for.distortion?. |
3780 | 28 5b 5d 3d 6e 6f 2c 20 6f 74 68 65 72 3d 79 65 73 29 20 27 29 3b 0a 20 20 0a 20 20 20 71 75 65 | ([]=no,.other=yes).');.......que |
37a0 | 73 74 5f 64 69 73 74 6f 72 74 20 3d 20 7e 69 73 65 6d 70 74 79 28 71 75 65 73 74 5f 64 69 73 74 | st_distort.=.~isempty(quest_dist |
37c0 | 6f 72 74 29 3b 0a 20 20 20 0a 20 20 20 69 66 20 71 75 65 73 74 5f 64 69 73 74 6f 72 74 2c 0a 20 | ort);........if.quest_distort,.. |
37e0 | 20 20 20 20 20 25 20 45 73 74 69 6d 61 74 69 6f 6e 20 6f 66 20 66 6f 63 61 6c 20 6c 65 6e 67 74 | .....%.Estimation.of.focal.lengt |
3800 | 68 3a 0a 20 20 20 20 20 20 63 5f 67 20 3d 20 5b 73 69 7a 65 28 49 2c 32 29 3b 73 69 7a 65 28 49 | h:.......c_g.=.[size(I,2);size(I |
3820 | 2c 31 29 5d 2f 32 20 2b 20 2e 35 3b 0a 09 09 66 5f 67 20 3d 20 44 69 73 74 6f 72 32 43 61 6c 69 | ,1)]/2.+..5;...f_g.=.Distor2Cali |
3840 | 62 28 30 2c 5b 5b 78 28 31 29 20 78 28 32 29 20 78 28 34 29 20 78 28 33 29 5d 20 2d 20 63 5f 67 | b(0,[[x(1).x(2).x(4).x(3)].-.c_g |
3860 | 28 31 29 3b 5b 79 28 31 29 20 79 28 32 29 20 79 28 34 29 20 79 28 33 29 5d 20 2d 20 63 5f 67 28 | (1);[y(1).y(2).y(4).y(3)].-.c_g( |
3880 | 32 29 5d 2c 31 2c 31 2c 34 2c 57 2c 4c 2c 5b 2d 57 2f 32 20 57 2f 32 20 57 2f 32 20 2d 57 2f 32 | 2)],1,1,4,W,L,[-W/2.W/2.W/2.-W/2 |
38a0 | 3b 4c 2f 32 20 4c 2f 32 20 2d 4c 2f 32 20 2d 4c 2f 32 3b 20 30 20 30 20 30 20 30 5d 2c 31 30 30 | ;L/2.L/2.-L/2.-L/2;.0.0.0.0],100 |
38c0 | 2c 31 2c 31 29 3b 0a 20 20 20 20 20 20 66 5f 67 20 3d 20 6d 65 61 6e 28 66 5f 67 29 3b 0a 20 20 | ,1,1);.......f_g.=.mean(f_g);... |
38e0 | 20 20 20 20 73 63 72 69 70 74 5f 66 69 74 5f 64 69 73 74 6f 72 74 69 6f 6e 3b 0a 20 20 20 65 6e | ....script_fit_distortion;....en |
3900 | 64 3b 0a 20 20 20 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 20 45 4e 44 20 | d;....%%%%%%%%%%%%%%%%%%%%%.END. |
3920 | 41 44 44 49 54 49 4f 4e 41 4c 20 53 54 55 46 46 20 49 4e 20 54 48 45 20 43 41 53 45 20 4f 46 20 | ADDITIONAL.STUFF.IN.THE.CASE.OF. |
3940 | 48 49 47 48 4c 59 20 44 49 53 54 4f 52 54 45 44 20 49 4d 41 47 45 53 20 25 25 25 25 25 25 25 25 | HIGHLY.DISTORTED.IMAGES.%%%%%%%% |
3960 | 25 25 25 25 25 0a 20 20 20 0a 20 20 20 0a 20 20 20 0a 20 20 20 0a 20 20 20 0a 20 20 20 4e 70 20 | %%%%%........................Np. |
3980 | 3d 20 28 6e 5f 73 71 5f 78 2b 31 29 2a 28 6e 5f 73 71 5f 79 2b 31 29 3b 0a 0a 20 20 20 64 69 73 | =.(n_sq_x+1)*(n_sq_y+1);.....dis |
39a0 | 70 28 27 43 6f 72 6e 65 72 20 65 78 74 72 61 63 74 69 6f 6e 2e 2e 2e 27 29 3b 0a 20 20 20 0a 20 | p('Corner.extraction...');...... |
39c0 | 20 20 67 72 69 64 5f 70 74 73 20 3d 20 63 6f 72 6e 65 72 66 69 6e 64 65 72 28 58 58 2c 49 2c 77 | ..grid_pts.=.cornerfinder(XX,I,w |
39e0 | 69 6e 74 79 2c 77 69 6e 74 78 29 3b 20 25 25 25 20 46 69 6e 64 73 20 74 68 65 20 65 78 61 63 74 | inty,wintx);.%%%.Finds.the.exact |
3a00 | 20 63 6f 72 6e 65 72 73 20 61 74 20 65 76 65 72 79 20 70 6f 69 6e 74 73 21 0a 20 20 20 0a 20 20 | .corners.at.every.points!....... |
3a20 | 20 25 73 61 76 65 20 61 6c 6c 5f 63 6f 72 6e 65 72 73 20 78 20 79 20 67 72 69 64 5f 70 74 73 0a | .%save.all_corners.x.y.grid_pts. |
3a40 | 20 20 20 0a 20 20 20 67 72 69 64 5f 70 74 73 20 3d 20 67 72 69 64 5f 70 74 73 20 2d 20 31 3b 20 | .......grid_pts.=.grid_pts.-.1;. |
3a60 | 25 20 73 75 62 74 72 61 63 74 20 31 20 74 6f 20 62 72 69 6e 67 20 74 68 65 20 6f 72 69 67 69 6e | %.subtract.1.to.bring.the.origin |
3a80 | 20 74 6f 20 28 30 2c 30 29 20 69 6e 73 74 65 61 64 20 6f 66 20 28 31 2c 31 29 20 69 6e 20 6d 61 | .to.(0,0).instead.of.(1,1).in.ma |
3aa0 | 74 6c 61 62 20 28 6e 6f 74 20 6e 65 63 65 73 73 61 72 79 20 69 6e 20 43 29 0a 20 20 20 0a 20 20 | tlab.(not.necessary.in.C)....... |
3ac0 | 20 0a 20 20 20 25 20 47 6c 6f 62 61 6c 20 48 6f 6d 6f 67 72 61 70 68 79 20 66 72 6f 6d 20 70 6c | .....%.Global.Homography.from.pl |
3ae0 | 61 6e 65 20 74 6f 20 70 69 78 65 6c 20 63 6f 6f 72 64 69 6e 61 74 65 73 3a 0a 20 20 20 0a 20 20 | ane.to.pixel.coordinates:....... |
3b00 | 20 48 5f 74 6f 74 61 6c 20 3d 20 5b 31 20 30 20 2d 31 20 3b 20 30 20 31 20 2d 31 20 3b 20 30 20 | .H_total.=.[1.0.-1.;.0.1.-1.;.0. |
3b20 | 30 20 31 5d 2a 48 6f 6d 6f 2a 5b 31 20 30 20 30 3b 30 20 2d 31 20 31 3b 30 20 30 20 31 5d 2a 5b | 0.1]*Homo*[1.0.0;0.-1.1;0.0.1]*[ |
3b40 | 31 2f 57 20 30 20 30 20 3b 20 30 20 31 2f 4c 20 30 3b 20 30 20 30 20 31 5d 3b 0a 20 20 20 25 20 | 1/W.0.0.;.0.1/L.0;.0.0.1];....%. |
3b60 | 57 41 52 4e 49 4e 47 21 21 21 20 74 68 65 20 66 69 72 73 74 20 6d 61 74 72 69 78 20 28 6f 6e 20 | WARNING!!!.the.first.matrix.(on. |
3b80 | 74 68 65 20 6c 65 66 74 20 73 69 64 65 29 20 74 61 6b 65 73 20 63 61 72 65 20 6f 66 20 74 68 65 | the.left.side).takes.care.of.the |
3ba0 | 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 69 78 65 6c 20 63 6f 6f | .transformation.of.the.pixel.coo |
3bc0 | 72 65 64 69 6e 61 74 65 73 20 62 79 20 2d 31 20 28 70 72 65 76 69 6f 75 73 20 6c 69 6e 65 29 0a | redinates.by.-1.(previous.line). |
3be0 | 20 20 20 25 20 49 66 20 69 74 20 69 73 20 6e 6f 74 20 64 6f 6e 65 2c 20 74 68 65 6e 20 74 68 69 | ...%.If.it.is.not.done,.then.thi |
3c00 | 73 20 6d 61 74 72 69 78 20 73 68 6f 75 6c 64 20 6e 6f 74 20 61 70 70 65 61 72 20 28 69 6e 20 43 | s.matrix.should.not.appear.(in.C |
3c20 | 29 0a 20 20 20 48 5f 74 6f 74 61 6c 20 3d 20 48 5f 74 6f 74 61 6c 20 2f 20 48 5f 74 6f 74 61 6c | )....H_total.=.H_total./.H_total |
3c40 | 28 33 2c 33 29 3b 20 20 20 0a 20 20 20 0a 20 20 20 0a 20 20 20 69 6e 64 5f 63 6f 72 6e 65 72 73 | (3,3);...............ind_corners |
3c60 | 20 3d 20 5b 31 20 6e 5f 73 71 5f 78 2b 31 20 28 6e 5f 73 71 5f 78 2b 31 29 2a 6e 5f 73 71 5f 79 | .=.[1.n_sq_x+1.(n_sq_x+1)*n_sq_y |
3c80 | 2b 31 20 28 6e 5f 73 71 5f 78 2b 31 29 2a 28 6e 5f 73 71 5f 79 2b 31 29 5d 3b 20 25 20 69 6e 64 | +1.(n_sq_x+1)*(n_sq_y+1)];.%.ind |
3ca0 | 65 78 20 6f 66 20 74 68 65 20 34 20 63 6f 72 6e 65 72 73 0a 20 20 20 69 6e 64 5f 6f 72 69 67 20 | ex.of.the.4.corners....ind_orig. |
3cc0 | 3d 20 28 6e 5f 73 71 5f 78 2b 31 29 2a 6e 5f 73 71 5f 79 20 2b 20 31 3b 0a 20 20 20 78 6f 72 69 | =.(n_sq_x+1)*n_sq_y.+.1;....xori |
3ce0 | 67 20 3d 20 67 72 69 64 5f 70 74 73 28 31 2c 69 6e 64 5f 6f 72 69 67 29 3b 0a 20 20 20 79 6f 72 | g.=.grid_pts(1,ind_orig);....yor |
3d00 | 69 67 20 3d 20 67 72 69 64 5f 70 74 73 28 32 2c 69 6e 64 5f 6f 72 69 67 29 3b 0a 20 20 20 64 78 | ig.=.grid_pts(2,ind_orig);....dx |
3d20 | 70 6f 73 20 3d 20 6d 65 61 6e 28 5b 67 72 69 64 5f 70 74 73 28 3a 2c 69 6e 64 5f 6f 72 69 67 29 | pos.=.mean([grid_pts(:,ind_orig) |
3d40 | 20 67 72 69 64 5f 70 74 73 28 3a 2c 69 6e 64 5f 6f 72 69 67 2b 31 29 5d 27 29 3b 0a 20 20 20 64 | .grid_pts(:,ind_orig+1)]');....d |
3d60 | 79 70 6f 73 20 3d 20 6d 65 61 6e 28 5b 67 72 69 64 5f 70 74 73 28 3a 2c 69 6e 64 5f 6f 72 69 67 | ypos.=.mean([grid_pts(:,ind_orig |
3d80 | 29 20 67 72 69 64 5f 70 74 73 28 3a 2c 69 6e 64 5f 6f 72 69 67 2d 6e 5f 73 71 5f 78 2d 31 29 5d | ).grid_pts(:,ind_orig-n_sq_x-1)] |
3da0 | 27 29 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 78 5f 62 6f 78 5f 6b 6b 20 3d 20 5b 67 72 69 64 5f | ');............x_box_kk.=.[grid_ |
3dc0 | 70 74 73 28 31 2c 3a 29 2d 28 77 69 6e 74 78 2b 2e 35 29 3b 67 72 69 64 5f 70 74 73 28 31 2c 3a | pts(1,:)-(wintx+.5);grid_pts(1,: |
3de0 | 29 2b 28 77 69 6e 74 78 2b 2e 35 29 3b 67 72 69 64 5f 70 74 73 28 31 2c 3a 29 2b 28 77 69 6e 74 | )+(wintx+.5);grid_pts(1,:)+(wint |
3e00 | 78 2b 2e 35 29 3b 67 72 69 64 5f 70 74 73 28 31 2c 3a 29 2d 28 77 69 6e 74 78 2b 2e 35 29 3b 67 | x+.5);grid_pts(1,:)-(wintx+.5);g |
3e20 | 72 69 64 5f 70 74 73 28 31 2c 3a 29 2d 28 77 69 6e 74 78 2b 2e 35 29 5d 3b 0a 20 20 20 79 5f 62 | rid_pts(1,:)-(wintx+.5)];....y_b |
3e40 | 6f 78 5f 6b 6b 20 3d 20 5b 67 72 69 64 5f 70 74 73 28 32 2c 3a 29 2d 28 77 69 6e 74 79 2b 2e 35 | ox_kk.=.[grid_pts(2,:)-(winty+.5 |
3e60 | 29 3b 67 72 69 64 5f 70 74 73 28 32 2c 3a 29 2d 28 77 69 6e 74 79 2b 2e 35 29 3b 67 72 69 64 5f | );grid_pts(2,:)-(winty+.5);grid_ |
3e80 | 70 74 73 28 32 2c 3a 29 2b 28 77 69 6e 74 79 2b 2e 35 29 3b 67 72 69 64 5f 70 74 73 28 32 2c 3a | pts(2,:)+(winty+.5);grid_pts(2,: |
3ea0 | 29 2b 28 77 69 6e 74 79 2b 2e 35 29 3b 67 72 69 64 5f 70 74 73 28 32 2c 3a 29 2d 28 77 69 6e 74 | )+(winty+.5);grid_pts(2,:)-(wint |
3ec0 | 79 2b 2e 35 29 5d 3b 0a 0a 20 20 20 0a 20 20 20 66 69 67 75 72 65 28 33 29 3b 0a 20 20 20 69 6d | y+.5)];.........figure(3);....im |
3ee0 | 61 67 65 28 49 29 3b 20 63 6f 6c 6f 72 6d 61 70 28 6d 61 70 29 3b 20 68 6f 6c 64 20 6f 6e 3b 0a | age(I);.colormap(map);.hold.on;. |
3f00 | 20 20 20 70 6c 6f 74 28 67 72 69 64 5f 70 74 73 28 31 2c 3a 29 2b 31 2c 67 72 69 64 5f 70 74 73 | ...plot(grid_pts(1,:)+1,grid_pts |
3f20 | 28 32 2c 3a 29 2b 31 2c 27 72 2b 27 29 3b 0a 20 20 20 70 6c 6f 74 28 78 5f 62 6f 78 5f 6b 6b 2b | (2,:)+1,'r+');....plot(x_box_kk+ |
3f40 | 31 2c 79 5f 62 6f 78 5f 6b 6b 2b 31 2c 27 2d 62 27 29 3b 0a 20 20 20 70 6c 6f 74 28 67 72 69 64 | 1,y_box_kk+1,'-b');....plot(grid |
3f60 | 5f 70 74 73 28 31 2c 69 6e 64 5f 63 6f 72 6e 65 72 73 29 2b 31 2c 67 72 69 64 5f 70 74 73 28 32 | _pts(1,ind_corners)+1,grid_pts(2 |
3f80 | 2c 69 6e 64 5f 63 6f 72 6e 65 72 73 29 2b 31 2c 27 6d 6f 27 29 3b 0a 20 20 20 70 6c 6f 74 28 78 | ,ind_corners)+1,'mo');....plot(x |
3fa0 | 6f 72 69 67 2b 31 2c 79 6f 72 69 67 2b 31 2c 27 2a 6d 27 29 3b 0a 20 20 20 68 20 3d 20 74 65 78 | orig+1,yorig+1,'*m');....h.=.tex |
3fc0 | 74 28 78 6f 72 69 67 2d 31 35 2c 79 6f 72 69 67 2d 31 35 2c 27 4f 27 29 3b 0a 20 20 20 73 65 74 | t(xorig-15,yorig-15,'O');....set |
3fe0 | 28 68 2c 27 43 6f 6c 6f 72 27 2c 27 6d 27 2c 27 46 6f 6e 74 53 69 7a 65 27 2c 31 34 29 3b 0a 20 | (h,'Color','m','FontSize',14);.. |
4000 | 20 20 68 32 20 3d 20 74 65 78 74 28 64 78 70 6f 73 28 31 29 2d 31 30 2c 64 78 70 6f 73 28 32 29 | ..h2.=.text(dxpos(1)-10,dxpos(2) |
4020 | 2d 31 30 2c 27 64 58 27 29 3b 0a 20 20 20 73 65 74 28 68 32 2c 27 43 6f 6c 6f 72 27 2c 27 67 27 | -10,'dX');....set(h2,'Color','g' |
4040 | 2c 27 46 6f 6e 74 53 69 7a 65 27 2c 31 34 29 3b 0a 20 20 20 68 33 20 3d 20 74 65 78 74 28 64 79 | ,'FontSize',14);....h3.=.text(dy |
4060 | 70 6f 73 28 31 29 2d 32 35 2c 64 79 70 6f 73 28 32 29 2d 33 2c 27 64 59 27 29 3b 0a 20 20 20 73 | pos(1)-25,dypos(2)-3,'dY');....s |
4080 | 65 74 28 68 33 2c 27 43 6f 6c 6f 72 27 2c 27 67 27 2c 27 46 6f 6e 74 53 69 7a 65 27 2c 31 34 29 | et(h3,'Color','g','FontSize',14) |
40a0 | 3b 0a 20 20 20 78 6c 61 62 65 6c 28 27 58 63 20 28 69 6e 20 63 61 6d 65 72 61 20 66 72 61 6d 65 | ;....xlabel('Xc.(in.camera.frame |
40c0 | 29 27 29 3b 0a 20 20 20 79 6c 61 62 65 6c 28 27 59 63 20 28 69 6e 20 63 61 6d 65 72 61 20 66 72 | )');....ylabel('Yc.(in.camera.fr |
40e0 | 61 6d 65 29 27 29 3b 0a 20 20 20 74 69 74 6c 65 28 27 45 78 74 72 61 63 74 65 64 20 63 6f 72 6e | ame)');....title('Extracted.corn |
4100 | 65 72 73 27 29 3b 0a 20 20 20 7a 6f 6f 6d 20 6f 6e 3b 0a 20 20 20 64 72 61 77 6e 6f 77 3b 0a 20 | ers');....zoom.on;....drawnow;.. |
4120 | 20 20 68 6f 6c 64 20 6f 66 66 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 58 69 20 3d 20 72 65 73 68 | ..hold.off;............Xi.=.resh |
4140 | 61 70 65 28 28 5b 30 3a 6e 5f 73 71 5f 78 5d 2a 64 58 29 27 2a 6f 6e 65 73 28 31 2c 6e 5f 73 71 | ape(([0:n_sq_x]*dX)'*ones(1,n_sq |
4160 | 5f 79 2b 31 29 2c 4e 70 2c 31 29 27 3b 0a 20 20 20 59 69 20 3d 20 72 65 73 68 61 70 65 28 6f 6e | _y+1),Np,1)';....Yi.=.reshape(on |
4180 | 65 73 28 6e 5f 73 71 5f 78 2b 31 2c 31 29 2a 5b 6e 5f 73 71 5f 79 3a 2d 31 3a 30 5d 2a 64 59 2c | es(n_sq_x+1,1)*[n_sq_y:-1:0]*dY, |
41a0 | 4e 70 2c 31 29 27 3b 0a 20 20 20 5a 69 20 3d 20 7a 65 72 6f 73 28 31 2c 4e 70 29 3b 0a 20 20 20 | Np,1)';....Zi.=.zeros(1,Np);.... |
41c0 | 0a 20 20 20 58 67 72 69 64 20 3d 20 5b 58 69 3b 59 69 3b 5a 69 5d 3b 0a 20 20 20 0a 20 20 20 0a | ....Xgrid.=.[Xi;Yi;Zi];......... |
41e0 | 09 25 20 41 6c 6c 20 74 68 65 20 70 6f 69 6e 74 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 28 6f 6e | .%.All.the.point.coordinates.(on |
4200 | 20 74 68 65 20 69 6d 61 67 65 2c 20 61 6e 64 20 69 6e 20 33 44 29 20 2d 20 66 6f 72 20 67 6c 6f | .the.image,.and.in.3D).-.for.glo |
4220 | 62 61 6c 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 3a 0a 0a 20 20 20 78 20 3d 20 67 72 69 64 5f 70 | bal.optimization:.....x.=.grid_p |
4240 | 74 73 3b 0a 20 20 20 58 20 3d 20 58 67 72 69 64 3b 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 | ts;....X.=.Xgrid;........eval([' |
4260 | 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 3d 20 78 3b 27 5d 29 3b 0a 20 20 20 65 76 | x_'.num2str(kk).'.=.x;']);....ev |
4280 | 61 6c 28 5b 27 58 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 3d 20 58 3b 27 5d 29 3b 0a | al(['X_'.num2str(kk).'.=.X;']);. |
42a0 | 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 6e 5f 73 71 5f 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b | .......eval(['n_sq_x_'.num2str(k |
42c0 | 6b 29 20 27 20 3d 20 6e 5f 73 71 5f 78 3b 27 5d 29 3b 0a 20 20 20 65 76 61 6c 28 5b 27 6e 5f 73 | k).'.=.n_sq_x;']);....eval(['n_s |
42e0 | 71 5f 79 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 3d 20 6e 5f 73 71 5f 79 3b 27 5d 29 | q_y_'.num2str(kk).'.=.n_sq_y;']) |
4300 | 3b 0a 20 20 20 0a 20 20 20 25 20 53 61 76 65 20 74 68 65 20 67 6c 6f 62 61 6c 20 70 6c 61 6e 61 | ;........%.Save.the.global.plana |
4320 | 72 20 68 6f 6d 6f 67 72 61 70 68 79 3a 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 48 5f 27 20 | r.homography:........eval(['H_'. |
4340 | 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 3d 20 48 5f 74 6f 74 61 6c 3b 27 5d 29 3b 28 5b 78 3b | num2str(kk).'.=.H_total;']);([x; |
4360 | 78 28 31 29 5d 2c 5b 79 3b 79 28 31 29 5d 2c 27 67 2d 27 29 3b 0a 20 20 20 70 6c 6f 74 28 78 2c | x(1)],[y;y(1)],'g-');....plot(x, |
4380 | 79 2c 27 6f 67 27 29 3b 0a 20 20 20 68 78 3d 74 65 78 74 28 28 78 28 34 29 2b 78 28 33 29 29 2f | y,'og');....hx=text((x(4)+x(3))/ |
43a0 | 32 2c 28 79 28 34 29 2b 79 28 33 29 29 2f 32 20 2d 20 32 30 2c 27 58 27 29 3b 0a 20 20 20 73 65 | 2,(y(4)+y(3))/2.-.20,'X');....se |
43c0 | 74 28 68 78 2c 27 63 6f 6c 6f 72 27 2c 27 67 27 2c 27 46 6f 6e 74 73 69 7a 65 27 2c 31 34 29 3b | t(hx,'color','g','Fontsize',14); |
43e0 | 0a 20 20 20 68 79 3d 74 65 78 74 28 28 78 28 34 29 2b 78 28 31 29 29 2f 32 2d 32 30 2c 28 79 28 | ....hy=text((x(4)+x(1))/2-20,(y( |
4400 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 63 6f 6d 70 75 74 65 5f 63 6f 6c 6c 69 6e 65 61 74 69 | TOOLBOX_calib/compute_collineati |
4420 | 6f 6e 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | on.m............................ |
4440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4460 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
4480 | 20 20 20 32 32 37 36 20 20 36 37 36 33 30 37 30 32 31 36 20 20 31 33 30 32 32 00 20 00 00 00 00 | ...2276..6763070216..13022...... |
44a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
44c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
44e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
45a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
45c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
45e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4600 | 66 75 6e 63 74 69 6f 6e 20 5b 48 2c 48 6e 6f 72 6d 2c 69 6e 76 5f 48 6e 6f 72 6d 5d 20 3d 20 63 | function.[H,Hnorm,inv_Hnorm].=.c |
4620 | 6f 6d 70 75 74 65 5f 63 6f 6c 6c 69 6e 65 61 74 69 6f 6e 20 28 61 30 30 2c 20 61 31 30 2c 20 61 | ompute_collineation.(a00,.a10,.a |
4640 | 31 31 2c 20 61 30 31 29 3b 0a 0a 25 20 6e 65 77 20 66 6f 72 6d 61 6c 69 73 6d 20 75 73 69 6e 67 | 11,.a01);..%.new.formalism.using |
4660 | 20 68 6f 6d 6f 67 72 61 70 68 69 65 73 0a 0a 61 30 30 20 3d 20 61 30 30 20 2f 20 61 30 30 28 33 | .homographies..a00.=.a00./.a00(3 |
4680 | 29 3b 0a 61 31 30 20 3d 20 61 31 30 20 2f 20 61 31 30 28 33 29 3b 0a 61 31 31 20 3d 20 61 31 31 | );.a10.=.a10./.a10(3);.a11.=.a11 |
46a0 | 20 2f 20 61 31 31 28 33 29 3b 0a 61 30 31 20 3d 20 61 30 31 20 2f 20 61 30 31 28 33 29 3b 0a 0a | ./.a11(3);.a01.=.a01./.a01(3);.. |
46c0 | 0a 25 20 50 72 65 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 20 6f 66 20 70 6f 69 6e 74 20 63 6f 6f | .%.Prenormalization.of.point.coo |
46e0 | 72 64 69 6e 61 74 65 73 20 28 76 65 72 79 20 69 6d 70 6f 72 74 61 6e 74 29 3a 0a 25 20 28 41 66 | rdinates.(very.important):.%.(Af |
4700 | 66 69 6e 65 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 29 0a 0a 61 78 20 3d 20 5b 61 30 30 28 31 | fine.normalization)..ax.=.[a00(1 |
4720 | 29 3b 61 31 30 28 31 29 3b 61 31 31 28 31 29 3b 61 30 31 28 31 29 5d 3b 0a 61 79 20 3d 20 5b 61 | );a10(1);a11(1);a01(1)];.ay.=.[a |
4740 | 30 30 28 32 29 3b 61 31 30 28 32 29 3b 61 31 31 28 32 29 3b 61 30 31 28 32 29 5d 3b 0a 0a 6d 78 | 00(2);a10(2);a11(2);a01(2)];..mx |
4760 | 78 20 3d 20 6d 65 61 6e 28 61 78 29 3b 0a 6d 79 79 20 3d 20 6d 65 61 6e 28 61 79 29 3b 0a 61 78 | x.=.mean(ax);.myy.=.mean(ay);.ax |
4780 | 20 3d 20 61 78 20 2d 20 6d 78 78 3b 0a 61 79 20 3d 20 61 79 20 2d 20 6d 79 79 3b 0a 0a 73 63 78 | .=.ax.-.mxx;.ay.=.ay.-.myy;..scx |
47a0 | 78 20 3d 20 6d 65 61 6e 28 61 62 73 28 61 78 29 29 3b 0a 73 63 79 79 20 3d 20 6d 65 61 6e 28 61 | x.=.mean(abs(ax));.scyy.=.mean(a |
47c0 | 62 73 28 61 79 29 29 3b 0a 0a 0a 48 6e 6f 72 6d 20 3d 20 5b 31 2f 73 63 78 78 20 30 20 2d 6d 78 | bs(ay));...Hnorm.=.[1/scxx.0.-mx |
47e0 | 78 2f 73 63 78 78 3b 30 20 31 2f 73 63 79 79 20 2d 6d 79 79 2f 73 63 79 79 3b 30 20 30 20 31 5d | x/scxx;0.1/scyy.-myy/scyy;0.0.1] |
4800 | 3b 0a 69 6e 76 5f 48 6e 6f 72 6d 20 3d 20 5b 73 63 78 78 20 30 20 6d 78 78 20 3b 20 30 20 73 63 | ;.inv_Hnorm.=.[scxx.0.mxx.;.0.sc |
4820 | 79 79 20 6d 79 79 3b 20 30 20 30 20 31 5d 3b 0a 0a 0a 61 30 30 6e 20 3d 20 48 6e 6f 72 6d 2a 61 | yy.myy;.0.0.1];...a00n.=.Hnorm*a |
4840 | 30 30 3b 0a 61 31 30 6e 20 3d 20 48 6e 6f 72 6d 2a 61 31 30 3b 0a 61 31 31 6e 20 3d 20 48 6e 6f | 00;.a10n.=.Hnorm*a10;.a11n.=.Hno |
4860 | 72 6d 2a 61 31 31 3b 0a 61 30 31 6e 20 3d 20 48 6e 6f 72 6d 2a 61 30 31 3b 0a 0a 0a 25 20 43 6f | rm*a11;.a01n.=.Hnorm*a01;...%.Co |
4880 | 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 76 61 6e 69 73 68 69 6e 67 20 70 6f 69 6e 74 | mputation.of.the.vanishing.point |
48a0 | 73 3a 0a 0a 56 31 6e 20 3d 20 63 72 6f 73 73 28 63 72 6f 73 73 28 61 30 30 6e 2c 61 31 30 6e 29 | s:..V1n.=.cross(cross(a00n,a10n) |
48c0 | 2c 63 72 6f 73 73 28 61 30 31 6e 2c 61 31 31 6e 29 29 3b 0a 56 32 6e 20 3d 20 63 72 6f 73 73 28 | ,cross(a01n,a11n));.V2n.=.cross( |
48e0 | 63 72 6f 73 73 28 61 30 30 6e 2c 61 30 31 6e 29 2c 63 72 6f 73 73 28 61 31 30 6e 2c 61 31 31 6e | cross(a00n,a01n),cross(a10n,a11n |
4900 | 29 29 3b 0a 0a 56 31 20 3d 20 69 6e 76 5f 48 6e 6f 72 6d 2a 56 31 6e 3b 0a 56 32 20 3d 20 69 6e | ));..V1.=.inv_Hnorm*V1n;.V2.=.in |
4920 | 76 5f 48 6e 6f 72 6d 2a 56 32 6e 3b 0a 0a 0a 25 20 4e 6f 72 6d 61 6c 69 7a 61 69 6f 6e 20 6f 66 | v_Hnorm*V2n;...%.Normalizaion.of |
4940 | 20 74 68 65 20 76 61 6e 69 73 68 69 6e 67 20 70 6f 69 6e 74 73 3a 0a 0a 56 31 6e 20 3d 20 56 31 | .the.vanishing.points:..V1n.=.V1 |
4960 | 6e 2f 6e 6f 72 6d 28 56 31 6e 29 3b 0a 56 32 6e 20 3d 20 56 32 6e 2f 6e 6f 72 6d 28 56 32 6e 29 | n/norm(V1n);.V2n.=.V2n/norm(V2n) |
4980 | 3b 0a 0a 0a 25 20 43 6c 6f 73 65 64 2d 66 6f 72 6d 20 73 6f 6c 75 74 69 6f 6e 20 6f 66 20 74 68 | ;...%.Closed-form.solution.of.th |
49a0 | 65 20 63 6f 65 66 66 69 63 69 65 6e 74 73 3a 0a 0a 61 6c 70 68 61 5f 78 20 3d 20 28 61 31 30 6e | e.coefficients:..alpha_x.=.(a10n |
49c0 | 28 32 29 2a 61 30 30 6e 28 31 29 20 2d 20 61 31 30 6e 28 31 29 2a 61 30 30 6e 28 32 29 29 2f 28 | (2)*a00n(1).-.a10n(1)*a00n(2))/( |
49e0 | 56 31 6e 28 32 29 2a 61 31 30 6e 28 31 29 2d 56 31 6e 28 31 29 2a 61 31 30 6e 28 32 29 29 3b 0a | V1n(2)*a10n(1)-V1n(1)*a10n(2));. |
4a00 | 0a 61 6c 70 68 61 5f 79 20 3d 20 28 61 30 31 6e 28 32 29 2a 61 30 30 6e 28 31 29 20 2d 20 61 30 | .alpha_y.=.(a01n(2)*a00n(1).-.a0 |
4a20 | 31 6e 28 31 29 2a 61 30 30 6e 28 32 29 29 2f 28 56 32 6e 28 32 29 2a 61 30 31 6e 28 31 29 2d 56 | 1n(1)*a00n(2))/(V2n(2)*a01n(1)-V |
4a40 | 32 6e 28 31 29 2a 61 30 31 6e 28 32 29 29 3b 0a 0a 0a 25 20 52 65 6d 61 69 6e 69 6e 67 20 48 6f | 2n(1)*a01n(2));...%.Remaining.Ho |
4a60 | 6d 6f 67 72 61 70 68 79 0a 0a 48 72 65 6d 20 3d 20 5b 61 6c 70 68 61 5f 78 2a 56 31 6e 20 20 61 | mography..Hrem.=.[alpha_x*V1n..a |
4a80 | 6c 70 68 61 5f 79 2a 56 32 6e 20 61 30 30 6e 5d 3b 0a 0a 0a 25 20 46 69 6e 61 6c 20 68 6f 6d 6f | lpha_y*V2n.a00n];...%.Final.homo |
4aa0 | 67 72 61 70 68 79 3a 0a 0a 48 20 3d 20 69 6e 76 5f 48 6e 6f 72 6d 2a 48 72 65 6d 3b 0a 0a 00 00 | graphy:..H.=.inv_Hnorm*Hrem;.... |
4ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4c00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 2e 6d 00 | TOOLBOX_calib/comp_distortion.m. |
4c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4c60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
4c80 | 20 20 20 32 30 35 32 20 20 36 37 36 33 30 37 30 32 32 30 20 20 31 32 30 30 35 00 20 00 00 00 00 | ...2052..6763070220..12005...... |
4ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
4e00 | 66 75 6e 63 74 69 6f 6e 20 5b 78 5f 63 6f 6d 70 5d 20 20 3d 20 63 6f 6d 70 5f 64 69 73 74 6f 72 | function.[x_comp]..=.comp_distor |
4e20 | 74 69 6f 6e 28 78 5f 64 69 73 74 2c 6b 32 29 3b 0a 0a 25 20 20 20 20 20 20 20 5b 78 5f 63 6f 6d | tion(x_dist,k2);..%.......[x_com |
4e40 | 70 5d 20 3d 20 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 28 78 5f 64 69 73 74 2c 6b 32 29 3b | p].=.comp_distortion(x_dist,k2); |
4e60 | 0a 25 20 20 20 20 20 20 20 0a 25 20 20 20 20 20 20 20 63 6f 6d 70 65 6e 73 61 74 65 73 20 74 68 | .%........%.......compensates.th |
4e80 | 65 20 72 61 64 69 61 6c 20 64 69 73 74 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 61 6d 65 72 | e.radial.distortion.of.the.camer |
4ea0 | 61 0a 25 20 20 20 20 20 20 20 6f 6e 20 74 68 65 20 69 6d 61 67 65 20 70 6c 61 6e 65 2e 0a 25 20 | a.%.......on.the.image.plane..%. |
4ec0 | 20 20 20 20 20 20 0a 25 20 20 20 20 20 20 20 78 5f 64 69 73 74 20 3a 20 74 68 65 20 69 6d 61 67 | .......%.......x_dist.:.the.imag |
4ee0 | 65 20 70 6f 69 6e 74 73 20 67 6f 74 20 77 69 74 68 6f 75 74 20 63 6f 6e 73 69 64 65 72 69 6e 67 | e.points.got.without.considering |
4f00 | 20 74 68 65 0a 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 64 69 61 6c 20 64 69 73 | .the.%................radial.dis |
4f20 | 74 6f 72 74 69 6f 6e 2e 0a 25 20 20 20 20 20 20 20 78 20 3a 20 54 68 65 20 69 6d 61 67 65 20 70 | tortion..%.......x.:.The.image.p |
4f40 | 6c 61 6e 65 20 70 6f 69 6e 74 73 20 61 66 74 65 72 20 63 6f 72 72 65 63 74 69 6f 6e 20 66 6f 72 | lane.points.after.correction.for |
4f60 | 20 74 68 65 20 64 69 73 74 6f 72 74 69 6f 6e 0a 25 20 20 20 20 20 20 20 0a 25 20 20 20 20 20 20 | .the.distortion.%........%...... |
4f80 | 20 78 20 61 6e 64 20 78 5f 64 69 73 74 20 61 72 65 20 32 78 4e 20 61 72 72 61 79 73 0a 25 0a 25 | .x.and.x_dist.are.2xN.arrays.%.% |
4fa0 | 20 20 20 20 20 20 20 4e 4f 54 45 20 3a 20 54 68 69 73 20 63 6f 6d 70 65 6e 73 61 74 69 6f 6e 20 | .......NOTE.:.This.compensation. |
4fc0 | 68 61 73 20 74 6f 20 62 65 20 64 6f 6e 65 20 61 66 74 65 72 20 74 68 65 20 73 75 62 73 74 72 61 | has.to.be.done.after.the.substra |
4fe0 | 63 74 69 6f 6e 0a 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 66 20 74 68 65 20 63 65 6e 74 | ction.%..............of.the.cent |
5000 | 65 72 20 6f 66 20 70 72 6f 6a 65 63 74 69 6f 6e 2c 20 61 6e 64 20 64 69 76 69 73 69 6f 6e 20 62 | er.of.projection,.and.division.b |
5020 | 79 20 74 68 65 20 66 6f 63 61 6c 0a 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 6e 67 74 | y.the.focal.%..............lengt |
5040 | 68 2e 0a 25 20 20 20 20 20 20 20 0a 25 20 20 20 20 20 20 20 28 64 6f 20 69 74 20 75 70 20 74 6f | h..%........%.......(do.it.up.to |
5060 | 20 61 20 73 65 63 6f 6e 64 20 6f 72 64 65 72 20 61 70 70 72 6f 78 69 6d 61 74 69 6f 6e 29 0a 0a | .a.second.order.approximation).. |
5080 | 5b 74 77 6f 2c 4e 5d 20 3d 20 73 69 7a 65 28 78 5f 64 69 73 74 29 3b 0a 0a 69 66 20 28 74 77 6f | [two,N].=.size(x_dist);..if.(two |
50a0 | 20 7e 3d 20 32 20 29 2c 20 0a 20 65 72 72 6f 72 28 27 45 52 52 4f 52 20 3a 20 54 68 65 20 64 69 | .~=.2.),...error('ERROR.:.The.di |
50c0 | 6d 65 6e 73 69 6f 6e 20 6f 66 20 74 68 65 20 70 6f 69 6e 74 73 20 73 68 6f 75 6c 64 20 62 65 20 | mension.of.the.points.should.be. |
50e0 | 32 78 4e 27 29 3b 0a 65 6e 64 3b 0a 0a 72 61 64 69 75 73 5f 32 3d 20 78 5f 64 69 73 74 28 31 2c | 2xN');.end;..radius_2=.x_dist(1, |
5100 | 3a 29 2e 5e 32 20 2b 20 78 5f 64 69 73 74 28 32 2c 3a 29 2e 5e 32 3b 0a 72 61 64 69 61 6c 5f 64 | :).^2.+.x_dist(2,:).^2;.radial_d |
5120 | 69 73 74 6f 72 74 69 6f 6e 20 3d 20 31 20 2b 20 6f 6e 65 73 28 32 2c 31 29 2a 28 6b 32 20 2a 20 | istortion.=.1.+.ones(2,1)*(k2.*. |
5140 | 72 61 64 69 75 73 5f 32 29 3b 0a 72 61 64 69 75 73 5f 32 5f 63 6f 6d 70 20 3d 20 28 78 5f 64 69 | radius_2);.radius_2_comp.=.(x_di |
5160 | 73 74 28 31 2c 3a 29 2e 5e 32 20 2b 20 78 5f 64 69 73 74 28 32 2c 3a 29 2e 5e 32 29 20 2e 2f 20 | st(1,:).^2.+.x_dist(2,:).^2)../. |
5180 | 72 61 64 69 61 6c 5f 64 69 73 74 6f 72 74 69 6f 6e 28 31 2c 3a 29 3b 0a 72 61 64 69 61 6c 5f 64 | radial_distortion(1,:);.radial_d |
51a0 | 69 73 74 6f 72 74 69 6f 6e 20 3d 20 31 20 2b 20 6f 6e 65 73 28 32 2c 31 29 2a 28 6b 32 20 2a 20 | istortion.=.1.+.ones(2,1)*(k2.*. |
51c0 | 72 61 64 69 75 73 5f 32 5f 63 6f 6d 70 29 3b 0a 78 5f 63 6f 6d 70 20 3d 20 78 5f 64 69 73 74 20 | radius_2_comp);.x_comp.=.x_dist. |
51e0 | 2e 2f 20 72 61 64 69 61 6c 5f 64 69 73 74 6f 72 74 69 6f 6e 3b 0a 0a 0a 25 25 20 46 75 6e 63 74 | ./.radial_distortion;...%%.Funct |
5200 | 69 6f 6e 20 63 6f 6d 70 6c 65 74 65 6c 79 20 63 68 65 63 6b 65 64 20 3a 20 49 74 20 77 6f 72 6b | ion.completely.checked.:.It.work |
5220 | 73 20 66 69 6e 65 20 21 21 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | s.fine.!!!...................... |
5240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
52a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
52c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
52e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
53a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
53c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
53e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5400 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 32 2e 6d | TOOLBOX_calib/comp_distortion2.m |
5420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5460 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
5480 | 20 20 20 32 37 31 34 20 20 36 37 36 33 30 37 30 32 32 31 20 20 31 32 30 37 35 00 20 00 00 00 00 | ...2714..6763070221..12075...... |
54a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
54c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
54e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
55a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
55c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
55e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5600 | 66 75 6e 63 74 69 6f 6e 20 5b 78 5f 63 6f 6d 70 5d 20 20 3d 20 63 6f 6d 70 5f 64 69 73 74 6f 72 | function.[x_comp]..=.comp_distor |
5620 | 74 69 6f 6e 28 78 5f 64 69 73 74 2c 6b 32 29 3b 0a 0a 25 20 20 20 20 20 20 20 5b 78 5f 63 6f 6d | tion(x_dist,k2);..%.......[x_com |
5640 | 70 5d 20 3d 20 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 28 78 5f 64 69 73 74 2c 6b 32 29 3b | p].=.comp_distortion(x_dist,k2); |
5660 | 0a 25 20 20 20 20 20 20 20 0a 25 20 20 20 20 20 20 20 63 6f 6d 70 65 6e 73 61 74 65 73 20 74 68 | .%........%.......compensates.th |
5680 | 65 20 72 61 64 69 61 6c 20 64 69 73 74 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 61 6d 65 72 | e.radial.distortion.of.the.camer |
56a0 | 61 0a 25 20 20 20 20 20 20 20 6f 6e 20 74 68 65 20 69 6d 61 67 65 20 70 6c 61 6e 65 2e 0a 25 20 | a.%.......on.the.image.plane..%. |
56c0 | 20 20 20 20 20 20 0a 25 20 20 20 20 20 20 20 78 5f 64 69 73 74 20 3a 20 74 68 65 20 69 6d 61 67 | .......%.......x_dist.:.the.imag |
56e0 | 65 20 70 6f 69 6e 74 73 20 67 6f 74 20 77 69 74 68 6f 75 74 20 63 6f 6e 73 69 64 65 72 69 6e 67 | e.points.got.without.considering |
5700 | 20 74 68 65 0a 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 64 69 61 6c 20 64 69 73 | .the.%................radial.dis |
5720 | 74 6f 72 74 69 6f 6e 2e 0a 25 20 20 20 20 20 20 20 6b 32 3a 20 52 61 64 69 61 6c 20 64 69 73 74 | tortion..%.......k2:.Radial.dist |
5740 | 6f 72 74 69 6f 6e 20 66 61 63 74 6f 72 0a 25 0a 25 20 20 20 20 20 20 20 78 20 3a 20 54 68 65 20 | ortion.factor.%.%.......x.:.The. |
5760 | 69 6d 61 67 65 20 70 6c 61 6e 65 20 70 6f 69 6e 74 73 20 61 66 74 65 72 20 63 6f 72 72 65 63 74 | image.plane.points.after.correct |
5780 | 69 6f 6e 20 66 6f 72 20 74 68 65 20 64 69 73 74 6f 72 74 69 6f 6e 0a 25 20 20 20 20 20 20 20 0a | ion.for.the.distortion.%........ |
57a0 | 25 20 20 20 20 20 20 20 78 20 61 6e 64 20 78 5f 64 69 73 74 20 61 72 65 20 32 78 4e 20 61 72 72 | %.......x.and.x_dist.are.2xN.arr |
57c0 | 61 79 73 0a 25 0a 25 20 20 20 20 20 20 20 4e 4f 54 45 20 3a 20 54 68 69 73 20 63 6f 6d 70 65 6e | ays.%.%.......NOTE.:.This.compen |
57e0 | 73 61 74 69 6f 6e 20 68 61 73 20 74 6f 20 62 65 20 64 6f 6e 65 20 61 66 74 65 72 20 74 68 65 20 | sation.has.to.be.done.after.the. |
5800 | 73 75 62 73 74 72 61 63 74 69 6f 6e 0a 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 66 20 74 | substraction.%..............of.t |
5820 | 68 65 20 63 65 6e 74 65 72 20 6f 66 20 70 72 6f 6a 65 63 74 69 6f 6e 2c 20 61 6e 64 20 64 69 76 | he.center.of.projection,.and.div |
5840 | 69 73 69 6f 6e 20 62 79 20 74 68 65 20 66 6f 63 61 6c 0a 25 20 20 20 20 20 20 20 20 20 20 20 20 | ision.by.the.focal.%............ |
5860 | 20 20 6c 65 6e 67 74 68 2e 0a 25 20 20 20 20 20 20 20 0a 25 20 20 53 6f 6c 76 65 20 66 6f 72 20 | ..length..%........%..Solve.for. |
5880 | 63 75 62 69 63 20 72 6f 6f 74 73 20 75 73 69 6e 67 20 6d 65 74 68 6f 64 20 66 72 6f 6d 20 4e 75 | cubic.roots.using.method.from.Nu |
58a0 | 6d 65 72 69 63 61 6c 20 52 65 63 69 70 65 73 20 69 6e 20 43 20 32 6e 64 20 45 64 2e 0a 25 20 20 | merical.Recipes.in.C.2nd.Ed..%.. |
58c0 | 70 61 67 65 73 20 31 38 34 2d 31 38 35 2e 0a 0a 0a 25 20 43 61 6c 69 66 6f 72 6e 69 61 20 49 6e | pages.184-185....%.California.In |
58e0 | 73 74 69 74 75 74 65 20 6f 66 20 54 65 63 68 6e 6f 6c 6f 67 79 0a 25 20 28 63 29 20 4a 65 61 6e | stitute.of.Technology.%.(c).Jean |
5900 | 2d 59 76 65 73 20 42 6f 75 67 75 65 74 20 2d 20 41 70 72 69 6c 20 32 37 74 68 2c 20 31 39 39 38 | -Yves.Bouguet.-.April.27th,.1998 |
5920 | 0a 0a 25 20 66 75 6c 6c 79 20 63 68 65 63 6b 65 64 21 20 4a 59 42 2c 20 61 70 72 69 6c 20 32 37 | ..%.fully.checked!.JYB,.april.27 |
5940 | 74 68 2c 20 31 39 39 38 20 2d 20 32 61 6d 0a 0a 69 66 20 6b 32 20 7e 3d 20 30 2c 0a 0a 5b 74 77 | th,.1998.-.2am..if.k2.~=.0,..[tw |
5960 | 6f 2c 4e 5d 20 3d 20 73 69 7a 65 28 78 5f 64 69 73 74 29 3b 0a 0a 69 66 20 28 74 77 6f 20 7e 3d | o,N].=.size(x_dist);..if.(two.~= |
5980 | 20 32 20 29 2c 20 0a 20 65 72 72 6f 72 28 27 45 52 52 4f 52 20 3a 20 54 68 65 20 64 69 6d 65 6e | .2.),...error('ERROR.:.The.dimen |
59a0 | 73 69 6f 6e 20 6f 66 20 74 68 65 20 70 6f 69 6e 74 73 20 73 68 6f 75 6c 64 20 62 65 20 32 78 4e | sion.of.the.points.should.be.2xN |
59c0 | 27 29 3b 0a 65 6e 64 3b 0a 0a 0a 70 68 20 3d 20 61 74 61 6e 32 28 78 5f 64 69 73 74 28 32 2c 3a | ');.end;...ph.=.atan2(x_dist(2,: |
59e0 | 29 2c 78 5f 64 69 73 74 28 31 2c 3a 29 29 3b 0a 0a 51 20 3d 20 2d 31 2f 28 33 2a 6b 32 29 3b 0a | ),x_dist(1,:));..Q.=.-1/(3*k2);. |
5a00 | 52 20 3d 20 2d 78 5f 64 69 73 74 28 31 2c 3a 29 2e 2f 28 32 2a 6b 32 2a 63 6f 73 28 70 68 29 29 | R.=.-x_dist(1,:)./(2*k2*cos(ph)) |
5a20 | 3b 0a 0a 52 32 20 3d 20 52 2e 5e 32 3b 0a 51 33 20 3d 20 51 5e 33 3b 0a 0a 0a 69 66 20 6b 32 20 | ;..R2.=.R.^2;.Q3.=.Q^3;...if.k2. |
5a40 | 3c 20 30 2c 0a 20 20 20 0a 20 20 20 25 20 74 68 69 73 20 77 6f 72 6b 73 20 69 6e 20 61 6c 6c 20 | <.0,........%.this.works.in.all. |
5a60 | 70 72 61 63 74 69 63 61 6c 20 73 69 74 75 61 74 69 6f 6e 73 20 28 69 74 20 73 74 61 72 74 73 20 | practical.situations.(it.starts. |
5a80 | 66 61 69 6c 69 6e 67 20 66 6f 72 20 76 65 72 79 20 6c 61 72 67 65 0a 20 20 20 25 20 76 61 6c 75 | failing.for.very.large....%.valu |
5aa0 | 65 73 20 6f 66 20 6b 32 29 0a 20 20 20 20 20 20 0a 20 20 20 74 68 20 3d 20 61 63 6f 73 28 52 2e | es.of.k2)...........th.=.acos(R. |
5ac0 | 2f 73 71 72 74 28 51 33 29 29 3b 0a 20 20 20 72 20 3d 20 2d 32 2a 73 71 72 74 28 51 29 2a 63 6f | /sqrt(Q3));....r.=.-2*sqrt(Q)*co |
5ae0 | 73 28 28 74 68 2d 32 2a 70 69 29 2f 33 29 3b 0a 0a 65 6c 73 65 0a 20 20 20 0a 20 20 20 25 20 6e | s((th-2*pi)/3);..else........%.n |
5b00 | 6f 74 65 3a 20 74 68 69 73 20 61 6c 77 61 79 73 20 77 6f 72 6b 73 2c 20 65 76 65 6e 20 66 6f 72 | ote:.this.always.works,.even.for |
5b20 | 20 72 69 64 69 63 75 6c 6f 75 73 20 76 61 6c 75 65 73 20 6f 66 20 6b 32 0a 20 20 20 0a 20 20 20 | .ridiculous.values.of.k2........ |
5b40 | 41 20 3d 20 28 73 71 72 74 28 52 32 2d 51 33 29 2d 52 29 2e 5e 28 31 2f 33 29 3b 20 0a 20 20 20 | A.=.(sqrt(R2-Q3)-R).^(1/3);..... |
5b60 | 42 20 3d 20 51 2a 28 31 2e 2f 41 29 3b 0a 20 20 20 72 20 3d 20 28 41 2b 42 29 3b 0a 20 20 0a 65 | B.=.Q*(1./A);....r.=.(A+B);....e |
5b80 | 6e 64 3b 0a 0a 78 5f 63 6f 6d 70 20 3d 20 5b 72 2e 2a 63 6f 73 28 70 68 29 3b 20 72 2e 2a 73 69 | nd;..x_comp.=.[r.*cos(ph);.r.*si |
5ba0 | 6e 28 70 68 29 5d 3b 0a 0a 65 6c 73 65 0a 20 20 20 0a 20 20 20 78 5f 63 6f 6d 70 20 3d 20 78 5f | n(ph)];..else........x_comp.=.x_ |
5bc0 | 64 69 73 74 3b 0a 0a 65 6e 64 3b 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | dist;..end;..................... |
5be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5c00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 5f 6f 75 | TOOLBOX_calib/comp_distortion_ou |
5c20 | 6c 75 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | lu.m............................ |
5c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5c60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
5c80 | 20 20 20 31 31 32 30 20 20 36 37 36 33 30 37 30 32 32 31 20 20 31 33 30 34 35 00 20 00 00 00 00 | ...1120..6763070221..13045...... |
5ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
5e00 | 66 75 6e 63 74 69 6f 6e 20 5b 78 5d 20 3d 20 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 5f 6f | function.[x].=.comp_distortion_o |
5e20 | 75 6c 75 28 78 64 2c 6b 29 3b 0a 0a 25 20 46 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 63 6f 6d 70 | ulu(xd,k);..%.Function.that.comp |
5e40 | 65 6e 73 61 74 65 73 20 66 6f 72 20 72 61 64 69 61 6c 20 61 6e 64 20 74 61 6e 67 65 6e 74 69 61 | ensates.for.radial.and.tangentia |
5e60 | 6c 20 64 69 73 74 6f 72 74 69 6f 6e 0a 25 20 4d 6f 64 65 6c 20 66 72 6f 6d 20 4f 75 6c 75 20 75 | l.distortion.%.Model.from.Oulu.u |
5e80 | 6e 69 76 65 72 73 69 74 79 0a 0a 0a 69 66 20 6c 65 6e 67 74 68 28 6b 29 20 3c 20 34 2c 0a 20 20 | niversity...if.length(k).<.4,... |
5ea0 | 20 0a 20 20 20 5b 78 5d 20 3d 20 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 28 78 64 2c 6b 29 | .....[x].=.comp_distortion(xd,k) |
5ec0 | 3b 0a 20 20 20 0a 65 6c 73 65 0a 20 20 20 0a 20 20 20 0a 20 20 20 6b 31 20 3d 20 6b 28 31 29 3b | ;.....else............k1.=.k(1); |
5ee0 | 0a 20 20 20 6b 32 20 3d 20 6b 28 32 29 3b 0a 20 20 20 0a 20 20 20 70 31 20 3d 20 6b 28 33 29 3b | ....k2.=.k(2);........p1.=.k(3); |
5f00 | 0a 20 20 20 70 32 20 3d 20 6b 28 34 29 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 78 20 3d 20 78 64 | ....p2.=.k(4);............x.=.xd |
5f20 | 3b 20 09 09 09 09 25 20 66 69 72 73 74 20 67 75 65 73 73 0a 20 20 20 0a 20 20 20 66 6f 72 20 6b | ;.....%.first.guess........for.k |
5f40 | 6b 3d 31 3a 35 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 72 5f 32 20 3d 20 73 75 6d 28 78 2e | k=1:5;..............r_2.=.sum(x. |
5f60 | 5e 32 29 3b 0a 20 20 20 20 20 20 6b 5f 72 61 64 69 61 6c 20 3d 20 20 31 20 2b 20 6b 31 20 2a 20 | ^2);.......k_radial.=..1.+.k1.*. |
5f80 | 72 5f 32 20 2b 20 6b 32 20 2a 20 72 5f 32 2e 5e 32 3b 0a 20 20 20 20 20 20 64 65 6c 74 61 5f 78 | r_2.+.k2.*.r_2.^2;.......delta_x |
5fa0 | 20 3d 20 5b 32 2a 70 31 2a 78 28 31 2c 3a 29 2e 2a 78 28 32 2c 3a 29 20 2b 20 70 32 2a 28 72 5f | .=.[2*p1*x(1,:).*x(2,:).+.p2*(r_ |
5fc0 | 32 20 2b 20 32 2a 78 28 31 2c 3a 29 2e 5e 32 29 20 3b 0a 09 20 20 20 20 70 31 20 2a 20 28 72 5f | 2.+.2*x(1,:).^2).;......p1.*.(r_ |
5fe0 | 32 20 2b 20 32 2a 78 28 32 2c 3a 29 2e 5e 32 29 2b 32 2a 70 32 2a 78 28 31 2c 3a 29 2e 2a 78 28 | 2.+.2*x(2,:).^2)+2*p2*x(1,:).*x( |
6000 | 32 2c 3a 29 5d 3b 0a 20 20 20 20 20 20 78 20 3d 20 28 78 64 20 2d 20 64 65 6c 74 61 5f 78 29 2e | 2,:)];.......x.=.(xd.-.delta_x). |
6020 | 2f 28 6f 6e 65 73 28 32 2c 31 29 2a 6b 5f 72 61 64 69 61 6c 29 3b 0a 20 20 20 20 20 20 0a 20 20 | /(ones(2,1)*k_radial);.......... |
6040 | 20 65 6e 64 3b 0a 20 20 20 0a 65 6e 64 3b 0a 0a 61 6c 20 61 6e 64 20 74 61 6e 67 65 6e 74 69 61 | .end;.....end;..al.and.tangentia |
6060 | 6c 20 64 69 73 74 6f 72 74 69 6f 6e 0a 25 20 4d 6f 64 65 6c 20 66 72 6f 6d 20 4f 75 6c 75 20 75 | l.distortion.%.Model.from.Oulu.u |
6080 | 6e 69 76 65 72 73 69 74 79 0a 0a 0a 69 66 20 6c 65 6e 67 74 68 28 6b 29 20 3c 20 34 2c 0a 20 20 | niversity...if.length(k).<.4,... |
60a0 | 20 0a 20 20 20 5b 78 5d 20 3d 20 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 28 78 64 2c 6b 29 | .....[x].=.comp_distortion(xd,k) |
60c0 | 3b 0a 20 20 20 0a 65 6c 73 65 0a 20 20 20 0a 20 20 20 0a 20 20 20 6b 31 20 3d 20 6b 28 31 29 3b | ;.....else............k1.=.k(1); |
60e0 | 0a 20 20 20 6b 32 20 3d 20 6b 28 32 29 3b 0a 20 20 20 0a 20 20 20 70 31 20 3d 20 6b 28 33 29 3b | ....k2.=.k(2);........p1.=.k(3); |
6100 | 0a 20 20 20 70 32 20 3d 20 6b 28 34 29 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 78 20 3d 20 78 64 | ....p2.=.k(4);............x.=.xd |
6120 | 3b 20 09 09 09 09 25 20 66 69 72 73 74 20 67 75 65 73 73 0a 20 20 20 0a 20 20 20 66 6f 72 20 6b | ;.....%.first.guess........for.k |
6140 | 6b 3d 31 3a 35 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 72 5f 32 20 3d 20 73 75 6d 28 78 2e | k=1:5;..............r_2.=.sum(x. |
6160 | 5e 32 29 3b 0a 20 20 20 20 20 20 6b 5f 72 61 64 69 61 6c 20 3d 20 20 31 20 2b 20 6b 31 20 2a 20 | ^2);.......k_radial.=..1.+.k1.*. |
6180 | 72 5f 32 20 2b 20 6b 32 20 2a 20 72 5f 32 2e 5e 32 3b 0a 20 20 20 20 20 20 64 65 6c 74 61 5f 78 | r_2.+.k2.*.r_2.^2;.......delta_x |
61a0 | 20 3d 20 5b 32 2a 70 31 2a 78 28 31 2c 3a 29 2e 2a 78 28 32 2c 3a 29 20 2b 20 70 32 2a 28 72 5f | .=.[2*p1*x(1,:).*x(2,:).+.p2*(r_ |
61c0 | 32 20 2b 20 32 2a 78 28 31 2c 3a 29 2e 5e 32 29 20 3b 0a 09 20 20 20 20 70 31 20 2a 20 28 72 5f | 2.+.2*x(1,:).^2).;......p1.*.(r_ |
61e0 | 32 20 2b 20 32 2a 78 28 32 2c 3a 29 2e 5e 32 29 2b 32 2a 70 32 2a 78 28 31 2c 3a 29 2e 2a 78 28 | 2.+.2*x(2,:).^2)+2*p2*x(1,:).*x( |
6200 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 63 6f 72 6e 65 72 66 69 6e 64 65 72 2e 6d 00 00 00 00 | TOOLBOX_calib/cornerfinder.m.... |
6220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
6240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
6260 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
6280 | 20 20 31 31 33 33 31 20 20 36 37 36 33 30 37 30 32 32 32 20 20 31 31 32 37 33 00 20 00 00 00 00 | ..11331..6763070222..11273...... |
62a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
62c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
62e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
6300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
6320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
6340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
6360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
6380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
63a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
63c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
63e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
6400 | 66 75 6e 63 74 69 6f 6e 20 5b 78 63 2c 67 6f 6f 64 2c 62 61 64 2c 74 79 70 65 5d 20 3d 20 63 6f | function.[xc,good,bad,type].=.co |
6420 | 72 6e 65 72 66 69 6e 64 65 72 28 78 74 2c 49 2c 77 69 6e 74 78 2c 77 69 6e 74 79 2c 77 78 32 2c | rnerfinder(xt,I,wintx,winty,wx2, |
6440 | 77 79 32 29 3b 0a 0a 25 5b 78 63 5d 20 3d 20 63 6f 72 6e 65 72 66 69 6e 64 65 72 28 78 74 2c 49 | wy2);..%[xc].=.cornerfinder(xt,I |
6460 | 29 3b 0a 25 0a 25 46 69 6e 64 73 20 74 68 65 20 73 75 62 2d 70 69 78 65 6c 20 63 6f 72 6e 65 72 | );.%.%Finds.the.sub-pixel.corner |
6480 | 73 20 6f 6e 20 74 68 65 20 69 6d 61 67 65 20 49 20 77 69 74 68 20 69 6e 69 74 69 61 6c 20 67 75 | s.on.the.image.I.with.initial.gu |
64a0 | 65 73 73 20 78 74 0a 25 78 74 20 61 6e 64 20 78 63 20 61 72 65 20 32 78 4e 20 6d 61 74 72 69 63 | ess.xt.%xt.and.xc.are.2xN.matric |
64c0 | 65 73 2e 20 54 68 65 20 66 69 72 73 74 20 63 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 74 68 65 20 78 | es..The.first.component.is.the.x |
64e0 | 20 63 6f 6f 72 64 69 6e 61 74 65 0a 25 28 68 6f 72 69 7a 6f 6e 74 61 6c 29 20 61 6e 64 20 74 68 | .coordinate.%(horizontal).and.th |
6500 | 65 20 73 65 63 6f 6e 64 20 63 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 74 68 65 20 79 20 63 6f 6f 72 | e.second.component.is.the.y.coor |
6520 | 64 69 6e 61 74 65 20 28 76 65 72 74 69 63 61 6c 29 0a 25 20 0a 25 42 61 73 65 64 20 6f 6e 20 48 | dinate.(vertical).%..%Based.on.H |
6540 | 61 72 72 69 73 20 63 6f 72 6e 65 72 20 66 69 6e 64 65 72 20 6d 65 74 68 6f 64 0a 25 0a 25 46 69 | arris.corner.finder.method.%.%Fi |
6560 | 6e 64 73 20 63 6f 72 6e 65 72 73 20 74 6f 20 61 20 70 72 65 63 69 73 69 6f 6e 20 62 65 6c 6f 77 | nds.corners.to.a.precision.below |
6580 | 20 2e 31 20 70 69 78 65 6c 21 0a 25 4f 63 74 2e 20 31 34 74 68 2c 20 31 39 39 37 20 2d 20 55 50 | ..1.pixel!.%Oct..14th,.1997.-.UP |
65a0 | 44 41 54 45 44 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 20 76 65 72 74 69 63 61 6c 20 61 6e 64 20 | DATED.to.work.with.vertical.and. |
65c0 | 68 6f 72 69 7a 6f 6e 74 61 6c 20 65 64 67 65 73 20 61 73 20 77 65 6c 6c 21 21 21 0a 25 53 65 70 | horizontal.edges.as.well!!!.%Sep |
65e0 | 74 20 31 39 39 38 20 2d 20 55 50 44 41 54 45 44 20 74 6f 20 68 61 6e 64 6c 65 20 64 69 76 65 72 | t.1998.-.UPDATED.to.handle.diver |
6600 | 67 65 64 20 70 6f 69 6e 74 73 3a 20 77 65 20 6b 65 65 70 20 74 68 65 20 6f 72 69 67 69 6e 61 6c | ged.points:.we.keep.the.original |
6620 | 20 70 6f 69 6e 74 73 0a 25 67 6f 6f 64 20 69 73 20 61 20 62 69 6e 61 72 79 20 76 65 63 74 6f 72 | .points.%good.is.a.binary.vector |
6640 | 20 69 6e 64 69 63 61 74 69 6e 67 20 77 65 74 68 65 72 20 61 20 66 65 61 74 75 72 65 20 70 6f 69 | .indicating.wether.a.feature.poi |
6660 | 6e 74 20 68 61 73 20 62 65 65 6e 20 70 72 6f 70 65 72 6c 79 0a 25 66 6f 75 6e 64 2e 0a 25 0a 25 | nt.has.been.properly.%found..%.% |
6680 | 41 64 64 20 61 20 7a 65 72 6f 20 7a 6f 6e 65 20 6f 66 20 73 69 7a 65 20 77 78 32 2c 77 79 32 0a | Add.a.zero.zone.of.size.wx2,wy2. |
66a0 | 25 4a 75 6c 79 20 31 35 74 68 2c 20 31 39 39 39 20 2d 20 42 75 67 20 6f 6e 20 74 68 65 20 6d 61 | %July.15th,.1999.-.Bug.on.the.ma |
66c0 | 73 6b 20 62 75 69 6c 64 69 6e 67 2e 2e 2e 20 66 69 78 65 64 20 2b 20 63 68 61 6e 67 65 20 74 6f | sk.building....fixed.+.change.to |
66e0 | 20 47 61 75 73 73 69 61 6e 20 6d 61 73 6b 20 77 69 74 68 20 68 69 67 68 65 72 0a 25 72 65 73 6f | .Gaussian.mask.with.higher.%reso |
6700 | 6c 75 74 69 6f 6e 20 61 6e 64 20 6c 61 72 67 65 72 20 6e 75 6d 62 65 72 20 6f 66 20 69 74 65 72 | lution.and.larger.number.of.iter |
6720 | 61 74 69 6f 6e 73 2e 0a 0a 0a 25 20 43 61 6c 69 66 6f 72 6e 69 61 20 49 6e 73 74 69 74 75 74 65 | ations....%.California.Institute |
6740 | 20 6f 66 20 54 65 63 68 6e 6f 6c 6f 67 79 0a 25 20 28 63 29 20 4a 65 61 6e 2d 59 76 65 73 20 42 | .of.Technology.%.(c).Jean-Yves.B |
6760 | 6f 75 67 75 65 74 20 2d 2d 20 4f 63 74 2e 20 31 34 74 68 2c 20 31 39 39 37 0a 0a 0a 0a 6c 69 6e | ouguet.--.Oct..14th,.1997....lin |
6780 | 65 5f 66 65 61 74 20 3d 20 31 3b 20 25 20 73 65 74 20 74 6f 20 31 20 74 6f 20 61 6c 6c 6f 77 20 | e_feat.=.1;.%.set.to.1.to.allow. |
67a0 | 66 6f 72 20 65 78 74 72 61 63 74 69 6f 6e 20 6f 66 20 6c 69 6e 65 20 66 65 61 74 75 72 65 73 2e | for.extraction.of.line.features. |
67c0 | 0a 0a 78 74 20 3d 20 78 74 27 3b 0a 78 74 20 3d 20 66 6c 69 70 6c 72 28 78 74 29 3b 0a 0a 0a 69 | ..xt.=.xt';.xt.=.fliplr(xt);...i |
67e0 | 66 20 6e 61 72 67 69 6e 20 3c 20 34 2c 0a 20 20 20 77 69 6e 74 79 20 3d 20 35 3b 0a 20 20 20 69 | f.nargin.<.4,....winty.=.5;....i |
6800 | 66 20 6e 61 72 67 69 6e 20 3c 20 33 2c 0a 20 20 20 20 20 20 77 69 6e 74 78 20 3d 20 35 3b 0a 20 | f.nargin.<.3,.......wintx.=.5;.. |
6820 | 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 0a 69 66 20 6e 61 72 67 69 6e 20 3c 20 36 2c 0a 20 20 20 | ..end;.end;...if.nargin.<.6,.... |
6840 | 77 78 32 20 3d 20 2d 31 3b 0a 20 20 20 77 79 32 20 3d 20 2d 31 3b 0a 65 6e 64 3b 0a 0a 0a 25 6d | wx2.=.-1;....wy2.=.-1;.end;...%m |
6860 | 61 73 6b 20 3d 20 6f 6e 65 73 28 32 2a 77 69 6e 74 78 2b 31 2c 32 2a 77 69 6e 74 79 2b 31 29 3b | ask.=.ones(2*wintx+1,2*winty+1); |
6880 | 0a 6d 61 73 6b 20 3d 20 65 78 70 28 2d 28 28 2d 77 69 6e 74 78 3a 77 69 6e 74 78 29 27 2f 28 77 | .mask.=.exp(-((-wintx:wintx)'/(w |
68a0 | 69 6e 74 78 29 29 2e 5e 32 29 20 2a 20 65 78 70 28 2d 28 28 2d 77 69 6e 74 79 3a 77 69 6e 74 79 | intx)).^2).*.exp(-((-winty:winty |
68c0 | 29 2f 28 77 69 6e 74 79 29 29 2e 5e 32 29 3b 0a 0a 0a 69 66 20 28 77 78 32 3e 30 29 20 26 20 28 | )/(winty)).^2);...if.(wx2>0).&.( |
68e0 | 77 79 32 3e 30 29 2c 0a 20 20 20 69 66 20 28 28 77 69 6e 74 78 20 2d 20 77 78 32 29 3e 3d 32 29 | wy2>0),....if.((wintx.-.wx2)>=2) |
6900 | 26 28 28 77 69 6e 74 79 20 2d 20 77 79 32 29 3e 3d 32 29 2c 0a 20 20 20 20 20 20 6d 61 73 6b 28 | &((winty.-.wy2)>=2),.......mask( |
6920 | 77 69 6e 74 78 2b 31 2d 77 78 32 3a 77 69 6e 74 78 2b 31 2b 77 78 32 2c 77 69 6e 74 79 2b 31 2d | wintx+1-wx2:wintx+1+wx2,winty+1- |
6940 | 77 79 32 3a 77 69 6e 74 79 2b 31 2b 77 79 32 29 3d 20 7a 65 72 6f 73 28 32 2a 77 78 32 2b 31 2c | wy2:winty+1+wy2)=.zeros(2*wx2+1, |
6960 | 32 2a 77 79 32 2b 31 29 3b 0a 20 20 20 65 6e 64 3b 0a 65 6e 64 3b 0a 0a 6f 66 66 78 20 3d 20 5b | 2*wy2+1);....end;.end;..offx.=.[ |
6980 | 2d 77 69 6e 74 78 3a 77 69 6e 74 78 5d 27 2a 6f 6e 65 73 28 31 2c 32 2a 77 69 6e 74 79 2b 31 29 | -wintx:wintx]'*ones(1,2*winty+1) |
69a0 | 3b 0a 6f 66 66 79 20 3d 20 6f 6e 65 73 28 32 2a 77 69 6e 74 78 2b 31 2c 31 29 2a 5b 2d 77 69 6e | ;.offy.=.ones(2*wintx+1,1)*[-win |
69c0 | 74 79 3a 77 69 6e 74 79 5d 3b 0a 0a 72 65 73 6f 6c 75 74 69 6f 6e 20 3d 20 30 2e 30 30 35 3b 0a | ty:winty];..resolution.=.0.005;. |
69e0 | 0a 4d 61 78 49 74 65 72 20 3d 20 31 30 3b 0a 0a 5b 6e 78 2c 6e 79 5d 20 3d 20 73 69 7a 65 28 49 | .MaxIter.=.10;..[nx,ny].=.size(I |
6a00 | 29 3b 0a 4e 20 3d 20 73 69 7a 65 28 78 74 2c 31 29 3b 0a 0a 78 63 20 3d 20 78 74 3b 20 25 20 66 | );.N.=.size(xt,1);..xc.=.xt;.%.f |
6a20 | 69 72 73 74 20 67 75 65 73 73 2e 2e 2e 20 74 68 65 79 20 64 6f 6e 27 74 20 6d 6f 76 65 20 21 21 | irst.guess....they.don't.move.!! |
6a40 | 21 0a 0a 74 79 70 65 20 3d 20 7a 65 72 6f 73 28 31 2c 4e 29 3b 0a 0a 0a 66 6f 72 20 69 3d 31 3a | !..type.=.zeros(1,N);...for.i=1: |
6a60 | 4e 2c 0a 20 20 20 0a 20 20 20 76 5f 65 78 74 72 61 20 3d 20 72 65 73 6f 6c 75 74 69 6f 6e 20 2b | N,........v_extra.=.resolution.+ |
6a80 | 20 31 3b 20 09 09 25 20 6a 75 73 74 20 6c 61 72 67 65 72 20 74 68 61 6e 20 72 65 73 6f 6c 75 74 | .1;...%.just.larger.than.resolut |
6aa0 | 69 6f 6e 0a 20 20 20 0a 20 20 20 63 6f 6d 70 74 20 3d 20 30 3b 20 09 09 09 09 25 20 6e 6f 20 69 | ion........compt.=.0;.....%.no.i |
6ac0 | 74 65 72 61 74 69 6f 6e 20 79 65 74 0a 20 20 20 0a 20 20 20 77 68 69 6c 65 20 28 6e 6f 72 6d 28 | teration.yet........while.(norm( |
6ae0 | 76 5f 65 78 74 72 61 29 20 3e 20 72 65 73 6f 6c 75 74 69 6f 6e 29 20 26 20 28 63 6f 6d 70 74 3c | v_extra).>.resolution).&.(compt< |
6b00 | 4d 61 78 49 74 65 72 29 2c 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 63 49 78 20 3d 20 78 63 28 | MaxIter),..............cIx.=.xc( |
6b20 | 69 2c 31 29 3b 20 09 09 09 25 0a 20 20 20 20 20 20 63 49 79 20 3d 20 78 63 28 69 2c 32 29 3b 20 | i,1);....%.......cIy.=.xc(i,2);. |
6b40 | 09 09 09 25 20 43 6f 6f 72 64 73 2e 20 6f 66 20 74 68 65 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 | ...%.Coords..of.the.point....... |
6b60 | 63 72 49 78 20 3d 20 72 6f 75 6e 64 28 63 49 78 29 3b 20 09 09 25 20 6f 6e 20 74 68 65 20 69 6e | crIx.=.round(cIx);...%.on.the.in |
6b80 | 69 74 69 61 6c 20 69 6d 61 67 65 0a 20 20 20 20 20 20 63 72 49 79 20 3d 20 72 6f 75 6e 64 28 63 | itial.image.......crIy.=.round(c |
6ba0 | 49 79 29 3b 20 09 09 25 20 20 20 20 20 20 0a 20 20 20 20 20 20 69 74 49 78 20 3d 20 63 49 78 20 | Iy);...%.............itIx.=.cIx. |
6bc0 | 2d 20 63 72 49 78 3b 20 09 09 25 20 43 6f 65 66 66 69 63 69 65 6e 74 73 0a 20 20 20 20 20 20 69 | -.crIx;...%.Coefficients.......i |
6be0 | 74 49 79 20 3d 20 63 49 79 20 2d 20 63 72 49 79 3b 20 09 09 25 20 74 6f 20 63 6f 6d 70 75 74 65 | tIy.=.cIy.-.crIy;...%.to.compute |
6c00 | 0a 20 20 20 20 20 20 69 66 20 69 74 49 78 20 3e 20 30 2c 20 09 09 09 25 20 74 68 65 20 73 75 62 | .......if.itIx.>.0,....%.the.sub |
6c20 | 20 70 69 78 65 6c 0a 09 20 76 49 78 20 3d 20 5b 69 74 49 78 20 31 2d 69 74 49 78 20 30 5d 27 3b | .pixel...vIx.=.[itIx.1-itIx.0]'; |
6c40 | 20 09 25 20 61 63 63 75 72 61 63 79 2e 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 20 76 49 78 20 3d | ..%.accuracy........else...vIx.= |
6c60 | 20 5b 30 20 31 2b 69 74 49 78 20 2d 69 74 49 78 5d 27 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 | .[0.1+itIx.-itIx]';.......end;.. |
6c80 | 20 20 20 20 20 69 66 20 69 74 49 79 20 3e 20 30 2c 0a 09 20 76 49 79 20 3d 20 5b 69 74 49 79 20 | .....if.itIy.>.0,...vIy.=.[itIy. |
6ca0 | 31 2d 69 74 49 79 20 30 5d 3b 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 20 76 49 79 20 3d 20 5b 30 | 1-itIy.0];.......else...vIy.=.[0 |
6cc0 | 20 31 2b 69 74 49 79 20 2d 69 74 49 79 5d 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 | .1+itIy.-itIy];.......end;...... |
6ce0 | 20 20 0a 20 20 20 20 20 20 25 20 57 68 61 74 20 69 66 20 74 68 65 20 73 75 62 20 69 6d 61 67 65 | .........%.What.if.the.sub.image |
6d00 | 20 69 73 20 6e 6f 74 20 69 6e 3f 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 69 66 20 28 63 72 49 | .is.not.in?..............if.(crI |
6d20 | 78 2d 77 69 6e 74 78 2d 32 20 3c 20 31 29 2c 20 78 6d 69 6e 3d 31 3b 20 78 6d 61 78 20 3d 20 32 | x-wintx-2.<.1),.xmin=1;.xmax.=.2 |
6d40 | 2a 77 69 6e 74 78 2b 35 3b 0a 20 20 20 20 20 20 65 6c 73 65 69 66 20 28 63 72 49 78 2b 77 69 6e | *wintx+5;.......elseif.(crIx+win |
6d60 | 74 78 2b 32 20 3e 20 6e 78 29 2c 20 78 6d 61 78 20 3d 20 6e 78 3b 20 78 6d 69 6e 20 3d 20 6e 78 | tx+2.>.nx),.xmax.=.nx;.xmin.=.nx |
6d80 | 2d 32 2a 77 69 6e 74 78 2d 34 3b 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 20 78 6d 69 6e 20 3d 20 | -2*wintx-4;.......else...xmin.=. |
6da0 | 63 72 49 78 2d 77 69 6e 74 78 2d 32 3b 20 78 6d 61 78 20 3d 20 63 72 49 78 2b 77 69 6e 74 78 2b | crIx-wintx-2;.xmax.=.crIx+wintx+ |
6dc0 | 32 3b 0a 20 20 20 20 20 20 65 6e 64 3b 0a 0a 20 20 20 20 20 20 69 66 20 28 63 72 49 79 2d 77 69 | 2;.......end;........if.(crIy-wi |
6de0 | 6e 74 79 2d 32 20 3c 20 31 29 2c 20 79 6d 69 6e 3d 31 3b 20 79 6d 61 78 20 3d 20 32 2a 77 69 6e | nty-2.<.1),.ymin=1;.ymax.=.2*win |
6e00 | 74 79 2b 35 3b 0a 20 20 20 20 20 20 65 6c 73 65 69 66 20 28 63 72 49 79 2b 77 69 6e 74 79 2b 32 | ty+5;.......elseif.(crIy+winty+2 |
6e20 | 20 3e 20 6e 79 29 2c 20 79 6d 61 78 20 3d 20 6e 79 3b 20 79 6d 69 6e 20 3d 20 6e 79 2d 32 2a 77 | .>.ny),.ymax.=.ny;.ymin.=.ny-2*w |
6e40 | 69 6e 74 79 2d 34 3b 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 20 79 6d 69 6e 20 3d 20 63 72 49 79 | inty-4;.......else...ymin.=.crIy |
6e60 | 2d 77 69 6e 74 79 2d 32 3b 20 79 6d 61 78 20 3d 20 63 72 49 79 2b 77 69 6e 74 79 2b 32 3b 0a 20 | -winty-2;.ymax.=.crIy+winty+2;.. |
6e80 | 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 53 49 | .....end;.....................SI |
6ea0 | 20 3d 20 49 28 78 6d 69 6e 3a 78 6d 61 78 2c 79 6d 69 6e 3a 79 6d 61 78 29 3b 20 25 20 54 68 65 | .=.I(xmin:xmax,ymin:ymax);.%.The |
6ec0 | 20 6e 65 63 65 73 73 61 72 79 20 6e 65 69 67 68 62 6f 72 68 6f 6f 64 0a 20 20 20 20 20 20 53 49 | .necessary.neighborhood.......SI |
6ee0 | 20 3d 20 63 6f 6e 76 32 28 63 6f 6e 76 32 28 53 49 2c 76 49 78 2c 27 73 61 6d 65 27 29 2c 76 49 | .=.conv2(conv2(SI,vIx,'same'),vI |
6f00 | 79 2c 27 73 61 6d 65 27 29 3b 0a 20 20 20 20 20 20 53 49 20 3d 20 53 49 28 32 3a 32 2a 77 69 6e | y,'same');.......SI.=.SI(2:2*win |
6f20 | 74 78 2b 34 2c 32 3a 32 2a 77 69 6e 74 79 2b 34 29 3b 20 25 20 54 68 65 20 73 75 62 70 69 78 65 | tx+4,2:2*winty+4);.%.The.subpixe |
6f40 | 6c 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 20 6e 65 69 67 68 62 6f 72 68 6f 6f 64 0a 20 20 20 20 | l.interpolated.neighborhood..... |
6f60 | 20 20 5b 67 79 2c 67 78 5d 20 3d 20 67 72 61 64 69 65 6e 74 28 53 49 29 3b 20 09 09 25 20 54 68 | ..[gy,gx].=.gradient(SI);...%.Th |
6f80 | 65 20 67 72 61 64 69 65 6e 74 20 69 6d 61 67 65 0a 20 20 20 20 20 20 67 78 20 3d 20 67 78 28 32 | e.gradient.image.......gx.=.gx(2 |
6fa0 | 3a 32 2a 77 69 6e 74 78 2b 32 2c 32 3a 32 2a 77 69 6e 74 79 2b 32 29 3b 20 25 20 65 78 74 72 61 | :2*wintx+2,2:2*winty+2);.%.extra |
6fc0 | 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 75 73 65 66 75 6c 20 70 61 72 74 73 20 6f 6e 6c 79 0a 20 | ction.of.the.useful.parts.only.. |
6fe0 | 20 20 20 20 20 67 79 20 3d 20 67 79 28 32 3a 32 2a 77 69 6e 74 78 2b 32 2c 32 3a 32 2a 77 69 6e | .....gy.=.gy(2:2*wintx+2,2:2*win |
7000 | 74 79 2b 32 29 3b 20 25 20 6f 66 20 74 68 65 20 67 72 61 64 69 65 6e 74 73 0a 20 20 20 20 20 20 | ty+2);.%.of.the.gradients....... |
7020 | 0a 20 20 20 20 20 20 70 78 20 3d 20 63 49 78 20 2b 20 6f 66 66 78 3b 0a 20 20 20 20 20 20 70 79 | .......px.=.cIx.+.offx;.......py |
7040 | 20 3d 20 63 49 79 20 2b 20 6f 66 66 79 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 67 78 78 20 | .=.cIy.+.offy;..............gxx. |
7060 | 3d 20 67 78 20 2e 2a 20 67 78 20 2e 2a 20 6d 61 73 6b 3b 0a 20 20 20 20 20 20 67 79 79 20 3d 20 | =.gx..*.gx..*.mask;.......gyy.=. |
7080 | 67 79 20 2e 2a 20 67 79 20 2e 2a 20 6d 61 73 6b 3b 0a 20 20 20 20 20 20 67 78 79 20 3d 20 67 78 | gy..*.gy..*.mask;.......gxy.=.gx |
70a0 | 20 2e 2a 20 67 79 20 2e 2a 20 6d 61 73 6b 3b 0a 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 | ..*.gy..*.mask;................. |
70c0 | 20 62 62 20 3d 20 5b 73 75 6d 28 73 75 6d 28 67 78 78 20 2e 2a 20 70 78 20 2b 20 67 78 79 20 2e | .bb.=.[sum(sum(gxx..*.px.+.gxy.. |
70e0 | 2a 20 70 79 29 29 3b 20 73 75 6d 28 73 75 6d 28 67 78 79 20 2e 2a 20 70 78 20 2b 20 67 79 79 20 | *.py));.sum(sum(gxy..*.px.+.gyy. |
7100 | 2e 2a 20 70 79 29 29 5d 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 61 20 3d 20 73 75 6d 28 73 | .*.py))];..............a.=.sum(s |
7120 | 75 6d 28 67 78 78 29 29 3b 0a 20 20 20 20 20 20 62 20 3d 20 73 75 6d 28 73 75 6d 28 67 78 79 29 | um(gxx));.......b.=.sum(sum(gxy) |
7140 | 29 3b 0a 20 20 20 20 20 20 63 20 3d 20 73 75 6d 28 73 75 6d 28 67 79 79 29 29 3b 0a 20 20 20 20 | );.......c.=.sum(sum(gyy));..... |
7160 | 20 20 0a 20 20 20 20 20 20 64 74 20 3d 20 61 2a 63 20 2d 20 62 5e 32 3b 0a 20 20 20 20 20 20 0a | .........dt.=.a*c.-.b^2;........ |
7180 | 20 20 20 20 20 20 78 63 32 20 3d 20 5b 63 2a 62 62 28 31 29 2d 62 2a 62 62 28 32 29 20 61 2a 62 | ......xc2.=.[c*bb(1)-b*bb(2).a*b |
71a0 | 62 28 32 29 2d 62 2a 62 62 28 31 29 5d 2f 64 74 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a | b(2)-b*bb(1)]/dt;............... |
71c0 | 20 20 20 20 20 20 25 6b 65 79 62 6f 61 72 64 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 69 66 | ......%keyboard;..............if |
71e0 | 20 6c 69 6e 65 5f 66 65 61 74 2c 0a 20 20 20 20 20 20 0a 09 20 47 20 3d 20 5b 61 20 62 3b 62 20 | .line_feat,..........G.=.[a.b;b. |
7200 | 63 5d 3b 0a 09 20 5b 55 2c 53 2c 56 5d 20 20 3d 20 73 76 64 28 47 29 3b 0a 09 20 0a 09 20 25 6b | c];...[U,S,V]..=.svd(G);......%k |
7220 | 65 79 62 6f 61 72 64 3b 0a 09 20 0a 09 20 25 20 49 66 20 6e 6f 6e 2d 69 6e 76 65 72 74 69 62 6c | eyboard;......%.If.non-invertibl |
7240 | 65 2c 20 74 68 65 6e 20 70 72 6f 6a 65 63 74 20 74 68 65 20 70 6f 69 6e 74 20 6f 6e 74 6f 20 74 | e,.then.project.the.point.onto.t |
7260 | 68 65 20 65 64 67 65 20 6f 72 74 68 6f 67 6f 6e 61 6c 3a 0a 09 20 0a 09 20 69 66 20 28 53 28 31 | he.edge.orthogonal:......if.(S(1 |
7280 | 2c 31 29 2f 53 28 32 2c 32 29 20 3e 20 35 30 29 2c 0a 09 20 20 20 20 25 20 70 72 6f 6a 65 63 74 | ,1)/S(2,2).>.50),......%.project |
72a0 | 69 6f 6e 20 6f 70 65 72 61 74 69 6f 6e 3a 0a 09 20 20 20 20 78 63 32 20 3d 20 78 63 32 20 2b 20 | ion.operation:......xc2.=.xc2.+. |
72c0 | 73 75 6d 28 28 78 63 28 69 2c 3a 29 2d 78 63 32 29 2e 2a 28 56 28 3a 2c 32 29 27 29 29 2a 56 28 | sum((xc(i,:)-xc2).*(V(:,2)'))*V( |
72e0 | 3a 2c 32 29 27 3b 0a 09 20 20 20 20 74 79 70 65 28 69 29 20 3d 20 31 3b 0a 09 20 65 6e 64 3b 0a | :,2)';......type(i).=.1;...end;. |
7300 | 20 20 20 20 20 20 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a | .............end;............... |
7320 | 20 20 20 20 20 20 25 6b 65 79 62 6f 61 72 64 3b 0a 20 20 20 20 20 20 0a 25 20 20 20 20 20 20 47 | ......%keyboard;........%......G |
7340 | 20 3d 20 5b 61 20 62 3b 62 20 63 5d 3b 0a 25 20 20 20 20 20 20 5b 55 2c 53 2c 56 5d 20 20 3d 20 | .=.[a.b;b.c];.%......[U,S,V]..=. |
7360 | 73 76 64 28 47 29 3b 0a 0a 0a 25 20 20 20 20 20 20 69 66 20 53 28 31 2c 31 29 2f 53 28 32 2c 32 | svd(G);...%......if.S(1,1)/S(2,2 |
7380 | 29 20 3e 20 31 35 30 2c 0a 25 09 20 62 62 32 20 3d 20 55 27 2a 62 62 3b 0a 25 09 20 78 63 32 20 | ).>.150,.%..bb2.=.U'*bb;.%..xc2. |
73a0 | 3d 20 28 56 2a 5b 62 62 32 28 31 29 2f 53 28 31 2c 31 29 20 3b 30 5d 29 27 3b 0a 25 20 20 20 20 | =.(V*[bb2(1)/S(1,1).;0])';.%.... |
73c0 | 20 20 65 6c 73 65 0a 25 09 20 78 63 32 20 3d 20 5b 63 2a 62 62 28 31 29 2d 62 2a 62 62 28 32 29 | ..else.%..xc2.=.[c*bb(1)-b*bb(2) |
73e0 | 20 61 2a 62 62 28 32 29 2d 62 2a 62 62 28 31 29 5d 2f 64 74 3b 0a 25 20 20 20 20 20 20 65 6e 64 | .a*bb(2)-b*bb(1)]/dt;.%......end |
7400 | 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 25 69 66 20 28 61 62 73 28 61 | ;.....................%if.(abs(a |
7420 | 29 3e 20 35 30 2a 61 62 73 28 63 29 29 2c 0a 25 09 20 78 63 32 20 3d 20 5b 28 63 2a 62 62 28 31 | )>.50*abs(c)),.%..xc2.=.[(c*bb(1 |
7440 | 29 2d 62 2a 62 62 28 32 29 29 2f 64 74 20 78 63 28 69 2c 32 29 5d 3b 0a 25 20 20 20 20 20 20 65 | )-b*bb(2))/dt.xc(i,2)];.%......e |
7460 | 6c 73 65 69 66 20 28 61 62 73 28 63 29 3e 20 35 30 2a 61 62 73 28 61 29 29 0a 25 09 20 78 63 32 | lseif.(abs(c)>.50*abs(a)).%..xc2 |
7480 | 20 3d 20 5b 78 63 28 69 2c 31 29 20 28 61 2a 62 62 28 32 29 2d 62 2a 62 62 28 31 29 29 2f 64 74 | .=.[xc(i,1).(a*bb(2)-b*bb(1))/dt |
74a0 | 5d 3b 0a 25 20 20 20 20 20 20 65 6c 73 65 0a 25 09 20 78 63 32 20 3d 20 5b 63 2a 62 62 28 31 29 | ];.%......else.%..xc2.=.[c*bb(1) |
74c0 | 2d 62 2a 62 62 28 32 29 20 61 2a 62 62 28 32 29 2d 62 2a 62 62 28 31 29 5d 2f 64 74 3b 0a 25 20 | -b*bb(2).a*bb(2)-b*bb(1)]/dt;.%. |
74e0 | 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 25 6b 65 79 62 6f 61 72 64 | .....end;..............%keyboard |
7500 | 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 76 5f 65 78 74 72 61 20 3d 20 78 63 28 69 2c 3a 29 | ;..............v_extra.=.xc(i,:) |
7520 | 20 2d 20 78 63 32 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 78 63 28 69 2c 3a 29 20 3d 20 78 | .-.xc2;..............xc(i,:).=.x |
7540 | 63 32 3b 0a 20 20 20 20 20 20 0a 25 20 20 20 20 20 20 6b 65 79 62 6f 61 72 64 3b 0a 0a 20 20 20 | c2;........%......keyboard;..... |
7560 | 20 20 20 63 6f 6d 70 74 20 3d 20 63 6f 6d 70 74 20 2b 20 31 3b 0a 20 20 20 20 20 20 0a 20 20 20 | ...compt.=.compt.+.1;........... |
7580 | 65 6e 64 0a 65 6e 64 3b 0a 0a 0a 25 20 63 68 65 63 6b 20 66 6f 72 20 70 6f 69 6e 74 73 20 74 68 | end.end;...%.check.for.points.th |
75a0 | 61 74 20 64 69 76 65 72 67 65 3a 0a 0a 64 65 6c 74 61 5f 78 20 3d 20 78 63 28 3a 2c 31 29 20 2d | at.diverge:..delta_x.=.xc(:,1).- |
75c0 | 20 78 74 28 3a 2c 31 29 3b 0a 64 65 6c 74 61 5f 79 20 3d 20 78 63 28 3a 2c 32 29 20 2d 20 78 74 | .xt(:,1);.delta_y.=.xc(:,2).-.xt |
75e0 | 28 3a 2c 32 29 3b 0a 0a 25 6b 65 79 62 6f 61 72 64 3b 0a 0a 0a 62 61 64 20 3d 20 28 61 62 73 28 | (:,2);..%keyboard;...bad.=.(abs( |
7600 | 64 65 6c 74 61 5f 78 29 20 3e 20 77 69 6e 74 78 29 20 7c 20 28 61 62 73 28 64 65 6c 74 61 5f 79 | delta_x).>.wintx).|.(abs(delta_y |
7620 | 29 20 3e 20 77 69 6e 74 79 29 3b 0a 67 6f 6f 64 20 3d 20 7e 62 61 64 3b 0a 69 6e 5f 62 61 64 20 | ).>.winty);.good.=.~bad;.in_bad. |
7640 | 3d 20 66 69 6e 64 28 62 61 64 29 3b 0a 0a 25 20 46 6f 72 20 74 68 65 20 64 69 76 65 72 67 65 64 | =.find(bad);..%.For.the.diverged |
7660 | 20 70 6f 69 6e 74 73 2c 20 6b 65 65 70 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 67 75 65 73 73 | .points,.keep.the.original.guess |
7680 | 65 73 3a 0a 0a 78 63 28 69 6e 5f 62 61 64 2c 3a 29 20 3d 20 78 74 28 69 6e 5f 62 61 64 2c 3a 29 | es:..xc(in_bad,:).=.xt(in_bad,:) |
76a0 | 3b 0a 0a 78 63 20 3d 20 66 6c 69 70 6c 72 28 78 63 29 3b 0a 78 63 20 3d 20 78 63 27 3b 0a 0a 62 | ;..xc.=.fliplr(xc);.xc.=.xc';..b |
76c0 | 61 64 20 3d 20 62 61 64 27 3b 0a 67 6f 6f 64 20 3d 20 67 6f 6f 64 27 3b 0a 00 00 00 00 00 00 00 | ad.=.bad';.good.=.good';........ |
76e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
77a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
77c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
77e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7800 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 63 6f 75 6e 74 5f 73 71 75 61 72 65 73 2e 6d 00 00 00 | TOOLBOX_calib/count_squares.m... |
7820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7860 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
7880 | 20 20 20 32 32 37 31 20 20 36 37 36 33 30 37 30 32 32 32 20 20 31 31 34 37 31 00 20 00 00 00 00 | ...2271..6763070222..11471...... |
78a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
78c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
78e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
79a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
79c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
79e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7a00 | 66 75 6e 63 74 69 6f 6e 20 6e 73 20 3d 20 63 6f 75 6e 74 5f 73 71 75 61 72 65 73 28 49 2c 78 31 | function.ns.=.count_squares(I,x1 |
7a20 | 2c 79 31 2c 78 32 2c 79 32 2c 77 69 6e 29 3b 0a 0a 25 6b 65 79 62 6f 61 72 64 3b 0a 0a 5b 6e 79 | ,y1,x2,y2,win);..%keyboard;..[ny |
7a40 | 2c 6e 78 5d 20 3d 20 73 69 7a 65 28 49 29 3b 0a 0a 6c 61 6d 62 64 61 20 3d 20 5b 79 31 20 2d 20 | ,nx].=.size(I);..lambda.=.[y1.-. |
7a60 | 79 32 3b 78 32 20 2d 20 78 31 3b 78 31 2a 79 32 20 2d 20 78 32 2a 79 31 5d 3b 0a 0a 6c 61 6d 62 | y2;x2.-.x1;x1*y2.-.x2*y1];..lamb |
7a80 | 64 61 20 3d 20 31 2f 73 71 72 74 28 6c 61 6d 62 64 61 28 31 29 5e 32 20 2b 20 6c 61 6d 62 64 61 | da.=.1/sqrt(lambda(1)^2.+.lambda |
7aa0 | 28 32 29 5e 32 29 20 2a 20 6c 61 6d 62 64 61 3b 0a 0a 6c 31 20 3d 20 6c 61 6d 62 64 61 20 2b 20 | (2)^2).*.lambda;..l1.=.lambda.+. |
7ac0 | 5b 30 3b 30 3b 77 69 6e 5d 3b 0a 6c 32 20 3d 20 6c 61 6d 62 64 61 20 2d 20 5b 30 3b 30 3b 77 69 | [0;0;win];.l2.=.lambda.-.[0;0;wi |
7ae0 | 6e 5d 3b 0a 0a 0a 64 78 20 3d 20 78 32 2d 78 31 3b 0a 64 79 20 3d 20 79 32 20 2d 20 79 31 3b 0a | n];...dx.=.x2-x1;.dy.=.y2.-.y1;. |
7b00 | 0a 0a 69 66 20 61 62 73 28 64 78 29 20 3e 20 61 62 73 28 64 79 29 2c 0a 20 20 20 0a 20 20 20 69 | ..if.abs(dx).>.abs(dy),........i |
7b20 | 66 20 78 32 20 3e 20 78 31 2c 0a 20 20 20 20 20 20 78 73 20 3d 20 78 31 3a 78 32 3b 0a 20 20 20 | f.x2.>.x1,.......xs.=.x1:x2;.... |
7b40 | 65 6c 73 65 0a 20 20 20 20 20 20 78 73 20 3d 20 78 31 3a 2d 31 3a 78 32 3b 0a 20 20 20 65 6e 64 | else.......xs.=.x1:-1:x2;....end |
7b60 | 3b 0a 20 20 20 0a 20 20 20 79 73 20 3d 20 2d 28 6c 61 6d 62 64 61 28 33 29 20 2b 20 6c 61 6d 62 | ;........ys.=.-(lambda(3).+.lamb |
7b80 | 64 61 28 31 29 2a 78 73 29 2f 6c 61 6d 62 64 61 28 32 29 3b 0a 20 20 20 0a 65 6c 73 65 0a 20 20 | da(1)*xs)/lambda(2);.....else... |
7ba0 | 20 0a 20 20 20 69 66 20 79 32 20 3e 20 79 31 2c 0a 20 20 20 20 20 20 79 73 20 3d 20 79 31 3a 79 | .....if.y2.>.y1,.......ys.=.y1:y |
7bc0 | 32 3b 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 79 73 20 3d 20 79 31 3a 2d 31 3a 79 32 3b 0a | 2;....else.......ys.=.y1:-1:y2;. |
7be0 | 20 20 20 65 6e 64 3b 0a 20 20 20 78 73 20 3d 20 2d 28 6c 61 6d 62 64 61 28 33 29 20 2b 20 6c 61 | ...end;....xs.=.-(lambda(3).+.la |
7c00 | 6d 62 64 61 28 32 29 2a 79 73 29 2f 6c 61 6d 62 64 61 28 31 29 3b 0a 20 20 20 0a 65 6e 64 3b 0a | mbda(2)*ys)/lambda(1);.....end;. |
7c20 | 0a 0a 20 20 20 0a 09 4e 70 20 3d 20 6c 65 6e 67 74 68 28 78 73 29 3b 0a 0a 09 78 73 5f 6d 61 74 | .......Np.=.length(xs);...xs_mat |
7c40 | 20 3d 20 6f 6e 65 73 28 32 2a 77 69 6e 20 2b 20 31 2c 31 29 2a 78 73 3b 0a 09 79 73 5f 6d 61 74 | .=.ones(2*win.+.1,1)*xs;..ys_mat |
7c60 | 20 3d 20 6f 6e 65 73 28 32 2a 77 69 6e 20 2b 20 31 2c 31 29 2a 79 73 3b 0a 0a 09 77 69 6e 5f 6d | .=.ones(2*win.+.1,1)*ys;...win_m |
7c80 | 61 74 20 3d 20 28 2d 77 69 6e 3a 77 69 6e 29 27 2a 6f 6e 65 73 28 31 2c 4e 70 29 3b 0a 0a 0a 09 | at.=.(-win:win)'*ones(1,Np);.... |
7ca0 | 78 73 5f 6d 61 74 32 20 3d 20 72 6f 75 6e 64 28 78 73 5f 6d 61 74 20 2d 20 77 69 6e 5f 6d 61 74 | xs_mat2.=.round(xs_mat.-.win_mat |
7cc0 | 20 2a 20 6c 61 6d 62 64 61 28 31 29 29 3b 0a 09 79 73 5f 6d 61 74 32 20 3d 20 72 6f 75 6e 64 28 | .*.lambda(1));..ys_mat2.=.round( |
7ce0 | 79 73 5f 6d 61 74 20 2d 20 77 69 6e 5f 6d 61 74 20 2a 20 6c 61 6d 62 64 61 28 32 29 29 3b 0a 0a | ys_mat.-.win_mat.*.lambda(2));.. |
7d00 | 09 69 6e 64 5f 6d 61 74 20 3d 20 28 78 73 5f 6d 61 74 32 20 2d 20 31 29 20 2a 20 6e 79 20 2b 20 | .ind_mat.=.(xs_mat2.-.1).*.ny.+. |
7d20 | 79 73 5f 6d 61 74 32 3b 0a 0a 09 69 6d 61 5f 70 61 74 63 68 20 3d 20 7a 65 72 6f 73 28 32 2a 77 | ys_mat2;...ima_patch.=.zeros(2*w |
7d40 | 69 6e 20 2b 20 31 2c 4e 70 29 3b 0a 0a 09 69 6d 61 5f 70 61 74 63 68 28 3a 29 20 3d 20 49 28 69 | in.+.1,Np);...ima_patch(:).=.I(i |
7d60 | 6e 64 5f 6d 61 74 28 3a 29 29 3b 0a 0a 09 25 69 6d 61 32 20 3d 20 69 6d 61 5f 70 61 74 63 68 28 | nd_mat(:));...%ima2.=.ima_patch( |
7d80 | 3a 2c 77 69 6e 2b 31 3a 65 6e 64 2d 77 69 6e 29 3b 0a 0a 09 66 69 6c 74 6b 20 3d 20 5b 6f 6e 65 | :,win+1:end-win);...filtk.=.[one |
7da0 | 73 28 77 69 6e 2c 4e 70 29 3b 7a 65 72 6f 73 28 31 2c 4e 70 29 3b 2d 6f 6e 65 73 28 77 69 6e 2c | s(win,Np);zeros(1,Np);-ones(win, |
7dc0 | 4e 70 29 5d 3b 0a 0a 09 6f 75 74 5f 66 20 3d 20 73 75 6d 28 66 69 6c 74 6b 2e 2a 69 6d 61 5f 70 | Np)];...out_f.=.sum(filtk.*ima_p |
7de0 | 61 74 63 68 29 3b 0a 0a 09 6f 75 74 5f 66 5f 66 20 3d 20 63 6f 6e 76 32 28 6f 75 74 5f 66 2c 5b | atch);...out_f_f.=.conv2(out_f,[ |
7e00 | 31 2f 34 20 31 2f 32 20 31 2f 34 5d 2c 27 73 61 6d 65 27 29 3b 0a 0a 09 6f 75 74 5f 66 5f 66 20 | 1/4.1/2.1/4],'same');...out_f_f. |
7e20 | 3d 20 6f 75 74 5f 66 5f 66 28 77 69 6e 2b 31 3a 65 6e 64 2d 77 69 6e 29 3b 0a 0a 09 6e 73 20 3d | =.out_f_f(win+1:end-win);...ns.= |
7e40 | 20 6c 65 6e 67 74 68 28 66 69 6e 64 28 28 28 6f 75 74 5f 66 5f 66 28 32 3a 65 6e 64 29 3e 3d 30 | .length(find(((out_f_f(2:end)>=0 |
7e60 | 29 26 28 6f 75 74 5f 66 5f 66 28 31 3a 65 6e 64 2d 31 29 3c 30 29 29 20 7c 20 28 28 6f 75 74 5f | )&(out_f_f(1:end-1)<0)).|.((out_ |
7e80 | 66 5f 66 28 32 3a 65 6e 64 29 3c 3d 30 29 26 28 6f 75 74 5f 66 5f 66 28 31 3a 65 6e 64 2d 31 29 | f_f(2:end)<=0)&(out_f_f(1:end-1) |
7ea0 | 3e 30 29 29 29 29 2b 31 3b 0a 0a 20 20 20 0a 0a 0a 72 65 74 75 72 6e 3b 0a 00 00 00 00 00 00 00 | >0))))+1;........return;........ |
7ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8000 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 64 61 74 61 5f 63 61 6c 69 62 2e 6d 00 00 00 00 00 00 | TOOLBOX_calib/data_calib.m...... |
8020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8060 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
8080 | 20 20 20 33 30 33 36 20 20 36 37 36 33 30 37 30 32 32 33 20 20 31 30 36 34 32 00 20 00 00 00 00 | ...3036..6763070223..10642...... |
80a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
80c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
80e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
81a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
81c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
81e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8200 | 25 25 25 20 54 68 69 73 20 73 63 72 69 70 74 20 61 6c 65 74 73 20 74 68 65 20 75 73 65 72 20 65 | %%%.This.script.alets.the.user.e |
8220 | 6e 74 65 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 69 6d 61 67 65 73 20 28 62 61 73 | nter.the.name.of.the.images.(bas |
8240 | 65 20 6e 61 6d 65 2c 20 6e 75 6d 62 65 72 69 6e 67 20 73 63 68 65 6d 65 2c 2e 2e 2e 0a 0a 64 69 | e.name,.numbering.scheme,.....di |
8260 | 72 3b 0a 0a 64 69 73 70 28 27 43 61 6d 65 72 61 20 43 61 6c 69 62 72 61 74 69 6f 6e 20 75 73 69 | r;..disp('Camera.Calibration.usi |
8280 | 6e 67 20 6d 75 6c 74 69 70 6c 65 20 69 6d 61 67 65 73 20 6f 66 20 70 6c 61 6e 61 72 20 70 61 74 | ng.multiple.images.of.planar.pat |
82a0 | 74 65 72 6e 27 29 3b 0a 64 69 73 70 28 27 4d 6f 64 65 6c 3a 20 32 20 66 6f 63 61 6c 73 2c 20 32 | tern');.disp('Model:.2.focals,.2 |
82c0 | 20 72 61 64 69 61 6c 20 64 69 73 74 2e 20 63 6f 65 66 66 2e 2c 20 32 20 74 61 6e 67 65 6e 74 69 | .radial.dist..coeff.,.2.tangenti |
82e0 | 61 6c 20 64 69 73 74 2e 20 63 6f 65 66 66 2e 20 61 6e 64 20 70 72 69 6e 63 69 70 6c 65 20 70 6f | al.dist..coeff..and.principle.po |
8300 | 69 6e 74 20 28 6f 70 74 29 27 29 3b 0a 64 69 73 70 28 27 57 41 52 4e 49 4e 47 3a 20 54 68 65 20 | int.(opt)');.disp('WARNING:.The. |
8320 | 72 65 66 65 72 65 6e 63 65 20 70 6c 61 6e 65 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 | reference.plane.is.assumed.to.be |
8340 | 20 75 73 65 64 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 69 6d 61 67 65 21 27 29 3b 0a 66 70 72 | .used.in.the.first.image!');.fpr |
8360 | 69 6e 74 66 28 31 2c 27 5c 6e 27 29 3b 0a 63 61 6c 69 62 5f 6e 61 6d 65 20 3d 20 69 6e 70 75 74 | intf(1,'\n');.calib_name.=.input |
8380 | 28 27 42 61 73 65 6e 61 6d 65 20 63 61 6d 65 72 61 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 69 6d | ('Basename.camera.calibration.im |
83a0 | 61 67 65 73 20 28 77 69 74 68 6f 75 74 20 6e 75 6d 62 65 72 20 6e 6f 72 20 73 75 66 66 69 78 29 | ages.(without.number.nor.suffix) |
83c0 | 3a 20 27 2c 27 73 27 29 3b 0a 0a 66 6f 72 6d 61 74 5f 69 6d 61 67 65 20 3d 20 20 69 6e 70 75 74 | :.','s');..format_image.=..input |
83e0 | 28 27 49 6d 61 67 65 20 66 6f 72 6d 61 74 3a 20 28 5b 5d 3d 27 27 72 27 27 3d 27 27 72 61 73 27 | ('Image.format:.([]=''r''=''ras' |
8400 | 27 2c 20 27 27 62 27 27 3d 27 27 62 6d 70 27 27 2c 20 27 27 74 27 27 3d 27 27 74 69 66 27 27 29 | ',.''b''=''bmp'',.''t''=''tif'') |
8420 | 20 27 2c 27 73 27 29 3b 0a 0a 69 66 20 69 73 65 6d 70 74 79 28 66 6f 72 6d 61 74 5f 69 6d 61 67 | .','s');..if.isempty(format_imag |
8440 | 65 29 2c 0a 20 20 20 66 6f 72 6d 61 74 5f 69 6d 61 67 65 20 3d 20 27 72 61 73 27 3b 0a 65 6e 64 | e),....format_image.=.'ras';.end |
8460 | 3b 0a 0a 69 66 20 66 6f 72 6d 61 74 5f 69 6d 61 67 65 28 31 29 20 3d 3d 20 27 62 27 2c 0a 20 20 | ;..if.format_image(1).==.'b',... |
8480 | 20 66 6f 72 6d 61 74 5f 69 6d 61 67 65 20 3d 20 27 62 6d 70 27 3b 0a 65 6c 73 65 0a 20 20 20 69 | .format_image.=.'bmp';.else....i |
84a0 | 66 20 66 6f 72 6d 61 74 5f 69 6d 61 67 65 28 31 29 20 3d 3d 20 27 74 27 2c 0a 20 20 20 20 20 20 | f.format_image(1).==.'t',....... |
84c0 | 66 6f 72 6d 61 74 5f 69 6d 61 67 65 20 3d 20 27 74 69 66 27 3b 0a 20 20 20 65 6c 73 65 0a 20 20 | format_image.=.'tif';....else... |
84e0 | 20 20 20 20 66 6f 72 6d 61 74 5f 69 6d 61 67 65 20 3d 20 27 72 61 73 27 3b 0a 20 20 20 65 6e 64 | ....format_image.=.'ras';....end |
8500 | 3b 0a 65 6e 64 3b 0a 0a 0a 6e 5f 69 6d 61 20 3d 20 31 30 30 30 3b 0a 77 68 69 6c 65 20 6e 5f 69 | ;.end;...n_ima.=.1000;.while.n_i |
8520 | 6d 61 20 3e 20 33 30 2c 0a 20 20 20 6e 5f 69 6d 61 20 3d 20 69 6e 70 75 74 28 27 4e 75 6d 62 65 | ma.>.30,....n_ima.=.input('Numbe |
8540 | 72 20 6f 66 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 69 6d 61 67 65 73 20 28 6d 61 78 3d 33 30 29 | r.of.calibration.images.(max=30) |
8560 | 3a 20 27 29 3b 0a 20 20 20 6e 5f 69 6d 61 20 3d 20 72 6f 75 6e 64 28 6e 5f 69 6d 61 29 3b 0a 65 | :.');....n_ima.=.round(n_ima);.e |
8580 | 6e 64 3b 0a 0a 74 79 70 65 5f 6e 75 6d 62 65 72 69 6e 67 20 3d 20 69 6e 70 75 74 28 27 54 79 70 | nd;..type_numbering.=.input('Typ |
85a0 | 65 20 6f 66 20 6e 75 6d 62 65 72 69 6e 67 20 28 65 78 3a 20 5b 5d 3d 34 2c 6f 74 68 65 72 3d 30 | e.of.numbering.(ex:.[]=4,other=0 |
85c0 | 34 29 3a 20 27 29 3b 0a 0a 74 79 70 65 5f 6e 75 6d 62 65 72 69 6e 67 20 3d 20 7e 69 73 65 6d 70 | 4):.');..type_numbering.=.~isemp |
85e0 | 74 79 28 74 79 70 65 5f 6e 75 6d 62 65 72 69 6e 67 29 3b 0a 0a 69 66 20 74 79 70 65 5f 6e 75 6d | ty(type_numbering);..if.type_num |
8600 | 62 65 72 69 6e 67 2c 0a 20 20 20 0a 20 20 20 4e 5f 73 6c 6f 74 73 20 3d 20 69 6e 70 75 74 28 27 | bering,........N_slots.=.input(' |
8620 | 4e 75 6d 62 65 72 20 6f 66 20 73 70 61 63 65 73 20 66 6f 72 20 6e 75 6d 62 65 72 73 3f 20 28 65 | Number.of.spaces.for.numbers?.(e |
8640 | 78 3a 20 32 20 2d 3e 20 30 34 2c 20 33 20 2d 3e 20 30 30 34 29 2c 20 28 5b 5d 3d 33 29 20 27 29 | x:.2.->.04,.3.->.004),.([]=3).') |
8660 | 3b 0a 0a 20 20 20 69 66 20 69 73 65 6d 70 74 79 28 4e 5f 73 6c 6f 74 73 29 2c 20 4e 5f 73 6c 6f | ;.....if.isempty(N_slots),.N_slo |
8680 | 74 73 20 3d 20 33 3b 20 65 6e 64 3b 0a 0a 65 6c 73 65 0a 20 20 20 0a 20 20 20 4e 5f 73 6c 6f 74 | ts.=.3;.end;..else........N_slot |
86a0 | 73 20 3d 20 31 3b 20 25 20 6e 6f 74 20 75 73 65 64 20 61 6e 79 77 61 79 2c 20 62 75 74 20 75 73 | s.=.1;.%.not.used.anyway,.but.us |
86c0 | 65 66 75 6c 20 66 6f 72 20 73 61 76 69 6e 67 0a 20 20 20 0a 65 6e 64 3b 0a 0a 0a 66 69 72 73 74 | eful.for.saving.....end;...first |
86e0 | 5f 6e 75 6d 20 3d 20 69 6e 70 75 74 28 27 46 69 72 73 74 20 69 6d 61 67 65 20 6e 75 6d 62 65 72 | _num.=.input('First.image.number |
8700 | 3f 20 28 30 2c 31 2c 32 2e 2e 2e 29 20 28 5b 5d 3d 30 29 20 27 29 3b 0a 20 0a 69 66 20 69 73 65 | ?.(0,1,2...).([]=0).');...if.ise |
8720 | 6d 70 74 79 28 66 69 72 73 74 5f 6e 75 6d 29 2c 20 66 69 72 73 74 5f 6e 75 6d 20 3d 20 30 3b 20 | mpty(first_num),.first_num.=.0;. |
8740 | 65 6e 64 3b 0a 0a 69 6d 61 67 65 5f 6e 75 6d 62 65 72 73 20 3d 20 66 69 72 73 74 5f 6e 75 6d 3a | end;..image_numbers.=.first_num: |
8760 | 6e 5f 69 6d 61 2d 31 2b 66 69 72 73 74 5f 6e 75 6d 3b 0a 0a 0a 25 73 74 72 69 6e 67 5f 73 61 76 | n_ima-1+first_num;...%string_sav |
8780 | 65 20 3d 20 27 73 61 76 65 20 63 61 6c 69 62 5f 64 61 74 61 20 6e 5f 69 6d 61 20 74 79 70 65 5f | e.=.'save.calib_data.n_ima.type_ |
87a0 | 6e 75 6d 62 65 72 69 6e 67 20 4e 5f 73 6c 6f 74 73 20 69 6d 61 67 65 5f 6e 75 6d 62 65 72 73 20 | numbering.N_slots.image_numbers. |
87c0 | 66 6f 72 6d 61 74 5f 69 6d 61 67 65 20 63 61 6c 69 62 5f 6e 61 6d 65 20 66 69 72 73 74 5f 6e 75 | format_image.calib_name.first_nu |
87e0 | 6d 27 3b 0a 0a 25 65 76 61 6c 28 73 74 72 69 6e 67 5f 73 61 76 65 29 3b 0a 0a 25 20 52 65 61 64 | m';..%eval(string_save);..%.Read |
8800 | 69 6e 67 20 69 6d 61 67 65 73 3a 0a 0a 69 6d 61 5f 72 65 61 64 5f 63 61 6c 69 62 3b 0a 0a 00 00 | ing.images:..ima_read_calib;.... |
8820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
88a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
88c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
88e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
89a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
89c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
89e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8a00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 44 69 73 74 6f 72 32 43 61 6c 69 62 2e 6d 00 00 00 00 | TOOLBOX_calib/Distor2Calib.m.... |
8a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8a60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
8a80 | 20 20 32 30 34 32 32 20 20 36 37 36 33 30 37 30 32 32 34 20 20 31 31 30 37 37 00 20 00 00 00 00 | ..20422..6763070224..11077...... |
8aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8c00 | 66 75 6e 63 74 69 6f 6e 20 5b 66 63 5f 32 2c 52 63 5f 32 2c 54 63 5f 32 2c 48 5f 32 2c 64 69 73 | function.[fc_2,Rc_2,Tc_2,H_2,dis |
8c20 | 74 61 6e 63 65 2c 56 5f 76 65 72 74 2c 56 5f 68 6f 72 69 2c 78 5f 61 6c 6c 5f 63 2c 56 5f 68 6f | tance,V_vert,V_hori,x_all_c,V_ho |
8c40 | 72 69 5f 70 69 78 2c 56 5f 76 65 72 74 5f 70 69 78 2c 56 5f 64 69 61 67 31 5f 70 69 78 2c 56 5f | ri_pix,V_vert_pix,V_diag1_pix,V_ |
8c60 | 64 69 61 67 32 5f 70 69 78 5d 3d 44 69 73 74 6f 72 32 43 61 6c 69 62 28 6b 5f 64 69 73 74 2c 67 | diag2_pix]=Distor2Calib(k_dist,g |
8c80 | 72 69 64 5f 70 74 73 5f 63 65 6e 74 65 72 65 64 2c 6e 5f 73 71 5f 78 2c 6e 5f 73 71 5f 79 2c 4e | rid_pts_centered,n_sq_x,n_sq_y,N |
8ca0 | 70 2c 57 2c 4c 2c 58 67 72 69 64 5f 32 2c 66 5f 69 6e 69 2c 4e 5f 69 74 65 72 2c 74 77 6f 5f 66 | p,W,L,Xgrid_2,f_ini,N_iter,two_f |
8cc0 | 6f 63 61 6c 29 3b 0a 0a 25 20 43 6f 6d 70 75 74 65 73 20 74 68 65 20 63 61 6c 69 62 72 61 74 69 | ocal);..%.Computes.the.calibrati |
8ce0 | 6f 6e 20 70 61 72 61 6d 65 74 65 72 73 20 6b 6e 6f 77 69 6e 67 20 74 68 65 0a 25 20 64 69 73 74 | on.parameters.knowing.the.%.dist |
8d00 | 6f 72 74 69 6f 6e 20 66 61 63 74 6f 72 20 6b 5f 64 69 73 74 0a 0a 25 20 67 72 69 64 5f 70 74 73 | ortion.factor.k_dist..%.grid_pts |
8d20 | 5f 63 65 6e 74 65 72 65 64 20 61 72 65 20 74 68 65 20 67 72 69 64 20 70 6f 69 6e 74 20 63 6f 6f | _centered.are.the.grid.point.coo |
8d40 | 72 64 69 6e 61 74 65 73 20 61 66 74 65 72 20 73 75 62 73 74 72 61 63 74 69 6f 6e 20 6f 66 0a 25 | rdinates.after.substraction.of.% |
8d60 | 20 74 68 65 20 6f 70 74 69 63 61 6c 20 63 65 6e 74 65 72 2e 0a 0a 25 20 63 61 6e 20 67 69 76 65 | .the.optical.center...%.can.give |
8d80 | 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 67 75 65 73 73 20 66 6f 72 20 74 68 65 20 66 6f 63 61 6c | .an.optional.guess.for.the.focal |
8da0 | 20 6c 65 6e 67 74 68 20 66 5f 69 6e 69 20 28 63 61 6e 20 73 65 74 20 74 6f 20 5b 5d 29 0a 25 20 | .length.f_ini.(can.set.to.[]).%. |
8dc0 | 63 61 6e 20 70 72 6f 76 69 64 65 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 74 65 72 61 74 | can.provide.the.number.of.iterat |
8de0 | 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 49 74 65 72 61 74 69 76 65 20 56 61 6e 69 73 68 69 6e 67 | ions.for.the.Iterative.Vanishing |
8e00 | 20 50 6f 69 6e 74 20 41 6c 67 6f 72 69 74 68 6d 0a 0a 25 20 69 66 20 74 68 65 20 66 6f 63 61 6c | .Point.Algorithm..%.if.the.focal |
8e20 | 20 6c 65 6e 67 74 68 20 69 73 20 6b 6e 6f 77 6e 20 70 65 72 66 65 63 74 6c 79 2c 20 74 68 65 6e | .length.is.known.perfectly,.then |
8e40 | 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6e 65 65 64 20 74 6f 20 69 74 65 72 61 74 65 2c 0a 25 | ,.there.is.no.need.to.iterate,.% |
8e60 | 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 2c 20 6f 6e 65 20 63 61 6e 20 66 69 78 3a 20 4e 5f 69 | .and.therefore,.one.can.fix:.N_i |
8e80 | 74 65 72 20 3d 20 30 3b 0a 0a 25 20 43 61 6c 69 66 6f 72 6e 69 61 20 49 6e 73 74 69 74 75 74 65 | ter.=.0;..%.California.Institute |
8ea0 | 20 6f 66 20 54 65 63 68 6e 6f 6c 6f 67 79 0a 25 20 28 63 29 20 4a 65 61 6e 2d 59 76 65 73 20 42 | .of.Technology.%.(c).Jean-Yves.B |
8ec0 | 6f 75 67 75 65 74 20 2d 20 4f 63 74 6f 62 65 72 20 37 74 68 2c 20 31 39 39 37 0a 0a 0a 0a 25 6b | ouguet.-.October.7th,.1997....%k |
8ee0 | 65 79 62 6f 61 72 64 3b 0a 0a 69 66 20 65 78 69 73 74 28 27 74 77 6f 5f 66 6f 63 61 6c 27 29 2c | eyboard;..if.exist('two_focal'), |
8f00 | 0a 20 20 20 69 66 20 69 73 65 6d 70 74 79 28 74 77 6f 5f 66 6f 63 61 6c 29 2c 0a 20 20 20 20 20 | ....if.isempty(two_focal),...... |
8f20 | 20 74 77 6f 5f 66 6f 63 61 6c 3d 30 3b 0a 20 20 20 65 6e 64 3b 0a 65 6c 73 65 0a 20 20 20 74 77 | .two_focal=0;....end;.else....tw |
8f40 | 6f 5f 66 6f 63 61 6c 20 3d 20 30 3b 0a 65 6e 64 3b 0a 0a 0a 69 66 20 65 78 69 73 74 28 27 4e 5f | o_focal.=.0;.end;...if.exist('N_ |
8f60 | 69 74 65 72 27 29 2c 0a 20 20 20 69 66 20 7e 69 73 65 6d 70 74 79 28 4e 5f 69 74 65 72 29 2c 0a | iter'),....if.~isempty(N_iter),. |
8f80 | 20 20 20 20 20 20 64 69 73 70 28 27 55 73 65 20 6e 75 6d 62 65 72 20 6f 66 20 69 74 65 72 61 74 | ......disp('Use.number.of.iterat |
8fa0 | 69 6f 6e 73 20 70 72 6f 76 69 64 65 64 27 29 3b 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 4e | ions.provided');....else.......N |
8fc0 | 5f 69 74 65 72 20 3d 20 31 30 3b 0a 20 20 20 65 6e 64 3b 0a 65 6c 73 65 0a 20 20 20 4e 5f 69 74 | _iter.=.10;....end;.else....N_it |
8fe0 | 65 72 20 3d 20 31 30 3b 0a 65 6e 64 3b 0a 0a 69 66 20 65 78 69 73 74 28 27 66 5f 69 6e 69 27 29 | er.=.10;.end;..if.exist('f_ini') |
9000 | 2c 0a 20 20 20 69 66 20 7e 69 73 65 6d 70 74 79 28 66 5f 69 6e 69 29 2c 0a 20 20 20 20 20 20 64 | ,....if.~isempty(f_ini),.......d |
9020 | 69 73 70 28 27 55 73 65 20 66 6f 63 61 6c 20 70 72 6f 76 69 64 65 64 27 29 3b 0a 20 20 20 20 20 | isp('Use.focal.provided');...... |
9040 | 20 69 66 20 6c 65 6e 67 74 68 28 66 5f 69 6e 69 29 3c 32 2c 20 66 5f 69 6e 69 3d 5b 66 5f 69 6e | .if.length(f_ini)<2,.f_ini=[f_in |
9060 | 69 3b 66 5f 69 6e 69 5d 3b 20 65 6e 64 3b 0a 20 20 20 20 20 20 66 63 5f 32 20 3d 20 66 5f 69 6e | i;f_ini];.end;.......fc_2.=.f_in |
9080 | 69 3b 0a 20 20 20 20 20 20 78 5f 61 6c 6c 5f 63 20 3d 20 5b 67 72 69 64 5f 70 74 73 5f 63 65 6e | i;.......x_all_c.=.[grid_pts_cen |
90a0 | 74 65 72 65 64 28 31 2c 3a 29 2f 66 63 5f 32 28 31 29 3b 67 72 69 64 5f 70 74 73 5f 63 65 6e 74 | tered(1,:)/fc_2(1);grid_pts_cent |
90c0 | 65 72 65 64 28 32 2c 3a 29 2f 66 63 5f 32 28 32 29 5d 3b 0a 20 20 20 20 20 20 78 5f 61 6c 6c 5f | ered(2,:)/fc_2(2)];.......x_all_ |
90e0 | 63 20 3d 20 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 28 78 5f 61 6c 6c 5f 63 2c 6b 5f 64 69 | c.=.comp_distortion(x_all_c,k_di |
9100 | 73 74 29 3b 20 25 20 77 65 20 63 61 6e 20 74 68 69 73 20 74 69 6d 65 21 21 21 0a 20 20 20 65 6c | st);.%.we.can.this.time!!!....el |
9120 | 73 65 0a 20 20 20 20 20 66 63 5f 32 20 3d 20 5b 31 3b 31 5d 3b 0a 20 20 20 20 20 78 5f 61 6c 6c | se......fc_2.=.[1;1];......x_all |
9140 | 5f 63 20 3d 20 67 72 69 64 5f 70 74 73 5f 63 65 6e 74 65 72 65 64 3b 0a 20 20 20 65 6e 64 3b 0a | _c.=.grid_pts_centered;....end;. |
9160 | 65 6c 73 65 0a 20 20 20 66 63 5f 32 20 3d 20 5b 31 3b 31 5d 3b 0a 20 20 20 78 5f 61 6c 6c 5f 63 | else....fc_2.=.[1;1];....x_all_c |
9180 | 20 3d 20 67 72 69 64 5f 70 74 73 5f 63 65 6e 74 65 72 65 64 3b 0a 65 6e 64 3b 0a 0a 0a 64 58 20 | .=.grid_pts_centered;.end;...dX. |
91a0 | 3d 20 57 2f 6e 5f 73 71 5f 78 3b 0a 64 59 20 3d 20 4c 2f 6e 5f 73 71 5f 79 3b 0a 0a 0a 4e 5f 78 | =.W/n_sq_x;.dY.=.L/n_sq_y;...N_x |
91c0 | 20 3d 20 6e 5f 73 71 5f 78 2b 31 3b 0a 4e 5f 79 20 3d 20 6e 5f 73 71 5f 79 2b 31 3b 0a 0a 0a 78 | .=.n_sq_x+1;.N_y.=.n_sq_y+1;...x |
91e0 | 5f 67 72 69 64 20 3d 20 7a 65 72 6f 73 28 4e 5f 78 2c 4e 5f 79 29 3b 0a 79 5f 67 72 69 64 20 3d | _grid.=.zeros(N_x,N_y);.y_grid.= |
9200 | 20 7a 65 72 6f 73 28 4e 5f 78 2c 4e 5f 79 29 3b 0a 0a 0a 0a 0a 0a 25 25 25 20 43 6f 6d 70 75 74 | .zeros(N_x,N_y);......%%%.Comput |
9220 | 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 6f 75 72 20 76 61 6e 69 73 68 69 6e 67 20 70 6f 69 6e | ation.of.the.four.vanishing.poin |
9240 | 74 73 20 69 6e 20 70 69 78 65 6c 73 0a 0a 0a 20 20 20 78 5f 67 72 69 64 28 3a 29 20 3d 20 67 72 | ts.in.pixels......x_grid(:).=.gr |
9260 | 69 64 5f 70 74 73 5f 63 65 6e 74 65 72 65 64 28 31 2c 3a 29 3b 0a 20 20 20 79 5f 67 72 69 64 28 | id_pts_centered(1,:);....y_grid( |
9280 | 3a 29 20 3d 20 67 72 69 64 5f 70 74 73 5f 63 65 6e 74 65 72 65 64 28 32 2c 3a 29 3b 0a 20 20 20 | :).=.grid_pts_centered(2,:);.... |
92a0 | 20 20 20 20 20 20 0a 20 20 20 66 6f 72 20 6b 3d 31 3a 6e 5f 73 71 5f 78 2b 31 2c 0a 20 20 20 20 | ..........for.k=1:n_sq_x+1,..... |
92c0 | 20 20 5b 55 2c 53 2c 56 5d 20 3d 20 73 76 64 28 5b 78 5f 67 72 69 64 28 6b 2c 3a 29 3b 79 5f 67 | ..[U,S,V].=.svd([x_grid(k,:);y_g |
92e0 | 72 69 64 28 6b 2c 3a 29 3b 6f 6e 65 73 28 31 2c 6e 5f 73 71 5f 79 2b 31 29 5d 29 3b 0a 20 20 20 | rid(k,:);ones(1,n_sq_y+1)]);.... |
9300 | 20 20 20 76 65 72 74 28 3a 2c 6b 29 20 3d 20 55 28 3a 2c 33 29 3b 0a 20 20 20 65 6e 64 3b 0a 20 | ...vert(:,k).=.U(:,3);....end;.. |
9320 | 20 20 0a 20 20 20 66 6f 72 20 6b 3d 31 3a 6e 5f 73 71 5f 79 2b 31 2c 0a 20 20 20 20 20 20 5b 55 | ......for.k=1:n_sq_y+1,.......[U |
9340 | 2c 53 2c 56 5d 20 3d 20 73 76 64 28 5b 78 5f 67 72 69 64 28 3a 2c 6b 29 27 3b 79 5f 67 72 69 64 | ,S,V].=.svd([x_grid(:,k)';y_grid |
9360 | 28 3a 2c 6b 29 27 3b 6f 6e 65 73 28 31 2c 6e 5f 73 71 5f 78 2b 31 29 5d 29 3b 0a 20 20 20 20 20 | (:,k)';ones(1,n_sq_x+1)]);...... |
9380 | 20 68 6f 72 69 28 3a 2c 6b 29 20 3d 20 55 28 3a 2c 33 29 3b 0a 20 20 20 65 6e 64 3b 0a 20 20 20 | .hori(:,k).=.U(:,3);....end;.... |
93a0 | 0a 20 20 20 25 20 32 20 70 72 69 6e 63 69 70 6c 65 20 56 61 6e 69 73 68 69 6e 67 20 70 6f 69 6e | ....%.2.principle.Vanishing.poin |
93c0 | 74 73 3a 0a 20 20 20 5b 55 2c 53 2c 56 5d 20 3d 20 73 76 64 28 76 65 72 74 29 3b 0a 20 20 20 56 | ts:....[U,S,V].=.svd(vert);....V |
93e0 | 5f 76 65 72 74 20 3d 20 55 28 3a 2c 33 29 3b 0a 20 20 20 5b 55 2c 53 2c 56 5d 20 3d 20 73 76 64 | _vert.=.U(:,3);....[U,S,V].=.svd |
9400 | 28 68 6f 72 69 29 3b 0a 20 20 20 56 5f 68 6f 72 69 20 3d 20 55 28 3a 2c 33 29 3b 0a 20 20 20 0a | (hori);....V_hori.=.U(:,3);..... |
9420 | 20 20 20 0a 0a 20 20 20 25 20 53 71 75 61 72 65 20 77 61 72 70 69 6e 67 3a 0a 20 20 20 0a 20 20 | ........%.Square.warping:....... |
9440 | 20 0a 20 20 20 76 65 72 74 5f 66 69 72 73 74 20 3d 20 76 65 72 74 28 3a 2c 31 29 20 2d 20 64 6f | .....vert_first.=.vert(:,1).-.do |
9460 | 74 28 56 5f 76 65 72 74 2c 76 65 72 74 28 3a 2c 31 29 29 2f 64 6f 74 28 56 5f 76 65 72 74 2c 56 | t(V_vert,vert(:,1))/dot(V_vert,V |
9480 | 5f 76 65 72 74 29 20 2a 20 56 5f 76 65 72 74 3b 0a 20 20 20 76 65 72 74 5f 6c 61 73 74 20 3d 20 | _vert).*.V_vert;....vert_last.=. |
94a0 | 76 65 72 74 28 3a 2c 6e 5f 73 71 5f 78 2b 31 29 20 2d 20 64 6f 74 28 56 5f 76 65 72 74 2c 76 65 | vert(:,n_sq_x+1).-.dot(V_vert,ve |
94c0 | 72 74 28 3a 2c 6e 5f 73 71 5f 78 2b 31 29 29 2f 64 6f 74 28 56 5f 76 65 72 74 2c 56 5f 76 65 72 | rt(:,n_sq_x+1))/dot(V_vert,V_ver |
94e0 | 74 29 20 2a 20 56 5f 76 65 72 74 3b 0a 20 20 20 0a 20 20 20 68 6f 72 69 5f 66 69 72 73 74 20 3d | t).*.V_vert;........hori_first.= |
9500 | 20 68 6f 72 69 28 3a 2c 31 29 20 2d 20 64 6f 74 28 56 5f 68 6f 72 69 2c 68 6f 72 69 28 3a 2c 31 | .hori(:,1).-.dot(V_hori,hori(:,1 |
9520 | 29 29 2f 64 6f 74 28 56 5f 68 6f 72 69 2c 56 5f 68 6f 72 69 29 20 2a 20 56 5f 68 6f 72 69 3b 0a | ))/dot(V_hori,V_hori).*.V_hori;. |
9540 | 20 20 20 68 6f 72 69 5f 6c 61 73 74 20 3d 20 68 6f 72 69 28 3a 2c 6e 5f 73 71 5f 79 2b 31 29 20 | ...hori_last.=.hori(:,n_sq_y+1). |
9560 | 2d 20 64 6f 74 28 56 5f 68 6f 72 69 2c 68 6f 72 69 28 3a 2c 6e 5f 73 71 5f 79 2b 31 29 29 2f 64 | -.dot(V_hori,hori(:,n_sq_y+1))/d |
9580 | 6f 74 28 56 5f 68 6f 72 69 2c 56 5f 68 6f 72 69 29 20 2a 20 56 5f 68 6f 72 69 3b 0a 20 20 20 0a | ot(V_hori,V_hori).*.V_hori;..... |
95a0 | 20 20 20 0a 20 20 20 78 31 20 3d 20 63 72 6f 73 73 28 68 6f 72 69 5f 66 69 72 73 74 2c 76 65 72 | .......x1.=.cross(hori_first,ver |
95c0 | 74 5f 66 69 72 73 74 29 3b 0a 20 20 20 78 32 20 3d 20 63 72 6f 73 73 28 68 6f 72 69 5f 66 69 72 | t_first);....x2.=.cross(hori_fir |
95e0 | 73 74 2c 76 65 72 74 5f 6c 61 73 74 29 3b 0a 20 20 20 78 33 20 3d 20 63 72 6f 73 73 28 68 6f 72 | st,vert_last);....x3.=.cross(hor |
9600 | 69 5f 6c 61 73 74 2c 76 65 72 74 5f 6c 61 73 74 29 3b 0a 20 20 20 78 34 20 3d 20 63 72 6f 73 73 | i_last,vert_last);....x4.=.cross |
9620 | 28 68 6f 72 69 5f 6c 61 73 74 2c 76 65 72 74 5f 66 69 72 73 74 29 3b 0a 20 20 20 0a 20 20 20 78 | (hori_last,vert_first);........x |
9640 | 31 20 3d 20 78 31 2f 78 31 28 33 29 3b 0a 20 20 20 78 32 20 3d 20 78 32 2f 78 32 28 33 29 3b 0a | 1.=.x1/x1(3);....x2.=.x2/x2(3);. |
9660 | 20 20 20 78 33 20 3d 20 78 33 2f 78 33 28 33 29 3b 0a 20 20 20 78 34 20 3d 20 78 34 2f 78 34 28 | ...x3.=.x3/x3(3);....x4.=.x4/x4( |
9680 | 33 29 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 0a 20 20 20 5b 73 71 75 61 72 65 5d 20 3d 20 52 65 | 3);................[square].=.Re |
96a0 | 63 74 61 6e 67 6c 65 32 53 71 75 61 72 65 28 5b 78 31 20 78 32 20 78 33 20 78 34 5d 2c 57 2c 4c | ctangle2Square([x1.x2.x3.x4],W,L |
96c0 | 29 3b 0a 0a 20 20 20 79 31 20 3d 20 73 71 75 61 72 65 28 3a 2c 31 29 3b 0a 20 20 20 79 32 20 3d | );.....y1.=.square(:,1);....y2.= |
96e0 | 20 73 71 75 61 72 65 28 3a 2c 32 29 3b 0a 20 20 20 79 33 20 3d 20 73 71 75 61 72 65 28 3a 2c 33 | .square(:,2);....y3.=.square(:,3 |
9700 | 29 3b 0a 20 20 20 79 34 20 3d 20 73 71 75 61 72 65 28 3a 2c 34 29 3b 0a 0a 20 20 20 48 32 20 3d | );....y4.=.square(:,4);.....H2.= |
9720 | 20 63 72 6f 73 73 28 56 5f 76 65 72 74 2c 56 5f 68 6f 72 69 29 3b 0a 20 20 20 0a 20 20 20 56 5f | .cross(V_vert,V_hori);........V_ |
9740 | 64 69 61 67 31 20 3d 20 63 72 6f 73 73 28 63 72 6f 73 73 28 79 31 2c 79 33 29 2c 48 32 29 3b 0a | diag1.=.cross(cross(y1,y3),H2);. |
9760 | 20 20 20 56 5f 64 69 61 67 32 20 3d 20 63 72 6f 73 73 28 63 72 6f 73 73 28 79 32 2c 79 34 29 2c | ...V_diag2.=.cross(cross(y2,y4), |
9780 | 48 32 29 3b 0a 0a 20 20 20 56 5f 64 69 61 67 31 20 3d 20 56 5f 64 69 61 67 31 20 2f 20 6e 6f 72 | H2);.....V_diag1.=.V_diag1./.nor |
97a0 | 6d 28 56 5f 64 69 61 67 31 29 3b 0a 20 20 20 56 5f 64 69 61 67 32 20 3d 20 56 5f 64 69 61 67 32 | m(V_diag1);....V_diag2.=.V_diag2 |
97c0 | 20 2f 20 6e 6f 72 6d 28 56 5f 64 69 61 67 32 29 3b 0a 0a 20 20 20 56 5f 68 6f 72 69 5f 70 69 78 | ./.norm(V_diag2);.....V_hori_pix |
97e0 | 20 3d 20 56 5f 68 6f 72 69 3b 0a 20 20 20 56 5f 76 65 72 74 5f 70 69 78 20 3d 20 56 5f 76 65 72 | .=.V_hori;....V_vert_pix.=.V_ver |
9800 | 74 3b 0a 20 20 20 56 5f 64 69 61 67 31 5f 70 69 78 20 3d 20 56 5f 64 69 61 67 31 3b 0a 20 20 20 | t;....V_diag1_pix.=.V_diag1;.... |
9820 | 56 5f 64 69 61 67 32 5f 70 69 78 20 3d 20 56 5f 64 69 61 67 32 3b 0a 0a 0a 25 20 65 6e 64 20 6f | V_diag2_pix.=.V_diag2;...%.end.o |
9840 | 66 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 76 61 6e 69 73 68 69 6e 67 20 70 | f.computation.of.the.vanishing.p |
9860 | 6f 69 6e 74 73 20 69 6e 20 70 69 78 65 6c 73 2e 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 66 20 74 77 6f 5f | oints.in.pixels..........if.two_ |
9880 | 66 6f 63 61 6c 2c 20 25 20 6f 6e 6c 79 20 69 66 20 77 65 20 61 74 74 65 6d 70 74 20 74 6f 20 65 | focal,.%.only.if.we.attempt.to.e |
98a0 | 73 74 69 6d 61 74 65 20 74 77 6f 20 66 6f 63 61 6c 73 2e 2e 2e 0a 20 20 20 25 20 55 73 65 20 64 | stimate.two.focals.......%.Use.d |
98c0 | 69 61 67 6f 6e 61 6c 20 6c 69 6e 65 73 20 61 6c 73 6f 20 74 6f 20 61 64 64 20 74 77 6f 20 65 78 | iagonal.lines.also.to.add.two.ex |
98e0 | 74 72 61 20 76 61 6e 69 73 68 69 6e 67 20 70 6f 69 6e 74 73 20 28 3f 29 0a 20 20 20 4e 5f 6d 69 | tra.vanishing.points.(?)....N_mi |
9900 | 6e 20 3d 20 6d 69 6e 28 4e 5f 78 2c 4e 5f 79 29 3b 0a 20 20 20 0a 20 20 20 69 66 20 4e 5f 6d 69 | n.=.min(N_x,N_y);........if.N_mi |
9920 | 6e 20 3c 20 32 2c 0a 20 20 20 20 20 20 75 73 65 5f 64 69 61 67 20 3d 20 30 3b 0a 20 20 20 20 20 | n.<.2,.......use_diag.=.0;...... |
9940 | 20 74 77 6f 5f 66 6f 63 61 6c 20 3d 20 30 3b 0a 20 20 20 20 20 20 64 69 73 70 28 27 43 61 6e 6e | .two_focal.=.0;.......disp('Cann |
9960 | 6f 74 20 65 73 74 69 6d 61 74 65 20 74 77 6f 20 66 6f 63 61 6c 73 20 28 6e 6f 20 65 78 69 73 74 | ot.estimate.two.focals.(no.exist |
9980 | 69 6e 67 20 64 69 61 67 6f 6e 61 6c 73 29 27 29 3b 20 20 20 0a 20 20 20 65 6c 73 65 0a 20 20 20 | ing.diagonals)');.......else.... |
99a0 | 20 20 20 75 73 65 5f 64 69 61 67 20 3d 20 31 3b 0a 20 20 20 20 20 20 44 65 6c 74 61 5f 4e 20 3d | ...use_diag.=.1;.......Delta_N.= |
99c0 | 20 61 62 73 28 4e 5f 78 2d 4e 5f 79 29 3b 0a 20 20 20 20 20 20 4e 5f 65 78 74 72 61 20 3d 20 72 | .abs(N_x-N_y);.......N_extra.=.r |
99e0 | 6f 75 6e 64 28 28 4e 5f 6d 69 6e 20 2d 20 44 65 6c 74 61 5f 4e 20 2d 20 31 29 2f 32 29 3b 0a 20 | ound((N_min.-.Delta_N.-.1)/2);.. |
9a00 | 20 20 20 20 20 64 69 61 67 5f 6c 69 73 74 20 3d 20 2d 4e 5f 65 78 74 72 61 3a 44 65 6c 74 61 5f | .....diag_list.=.-N_extra:Delta_ |
9a20 | 4e 2b 4e 5f 65 78 74 72 61 3b 0a 20 20 20 20 20 20 4e 5f 64 69 61 67 20 3d 20 6c 65 6e 67 74 68 | N+N_extra;.......N_diag.=.length |
9a40 | 28 64 69 61 67 5f 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 64 69 61 67 5f 31 20 3d 20 7a 65 72 6f | (diag_list);.......diag_1.=.zero |
9a60 | 73 28 33 2c 4e 5f 64 69 61 67 29 3b 0a 20 20 20 20 20 20 64 69 61 67 5f 32 20 3d 20 7a 65 72 6f | s(3,N_diag);.......diag_2.=.zero |
9a80 | 73 28 33 2c 4e 5f 64 69 61 67 29 3b 0a 20 20 20 65 6e 64 3b 0a 65 6c 73 65 20 20 20 0a 20 20 20 | s(3,N_diag);....end;.else....... |
9aa0 | 25 20 47 69 76 65 20 75 70 20 74 68 65 20 75 73 65 20 6f 66 20 74 68 65 20 64 69 61 67 6f 6e 61 | %.Give.up.the.use.of.the.diagona |
9ac0 | 6c 73 20 28 73 6f 20 66 61 72 29 0a 20 20 20 25 20 69 74 20 73 65 65 6d 73 20 74 68 61 74 20 74 | ls.(so.far)....%.it.seems.that.t |
9ae0 | 68 65 20 65 72 72 6f 72 20 69 73 20 69 6e 63 72 65 61 73 65 64 0a 20 20 20 75 73 65 5f 64 69 61 | he.error.is.increased....use_dia |
9b00 | 67 20 3d 20 30 3b 0a 65 6e 64 3b 0a 0a 0a 0a 25 20 54 68 65 20 76 65 72 74 69 63 61 6c 20 6c 69 | g.=.0;.end;....%.The.vertical.li |
9b20 | 6e 65 73 3a 20 76 65 72 74 2c 20 48 6f 72 69 7a 6f 6e 74 61 6c 20 6c 69 6e 65 73 3a 20 68 6f 72 | nes:.vert,.Horizontal.lines:.hor |
9b40 | 69 0a 76 65 72 74 20 3d 20 7a 65 72 6f 73 28 33 2c 6e 5f 73 71 5f 78 2b 31 29 3b 0a 68 6f 72 69 | i.vert.=.zeros(3,n_sq_x+1);.hori |
9b60 | 20 3d 20 7a 65 72 6f 73 28 33 2c 6e 5f 73 71 5f 79 2b 31 29 3b 0a 20 0a 66 6f 72 20 63 6f 75 6e | .=.zeros(3,n_sq_y+1);...for.coun |
9b80 | 74 65 72 5f 6b 20 3d 20 31 3a 4e 5f 69 74 65 72 2c 20 09 25 20 74 68 65 20 49 74 65 72 61 74 69 | ter_k.=.1:N_iter,..%.the.Iterati |
9ba0 | 76 65 20 56 61 6e 69 73 68 69 6e 67 20 50 6f 69 6e 74 73 20 41 6c 67 6f 72 69 74 68 6d 20 74 6f | ve.Vanishing.Points.Algorithm.to |
9bc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
9be0 | 20 25 20 65 73 74 69 6d 61 74 65 20 74 68 65 20 66 6f 63 61 6c 20 6c 65 6e 67 74 68 20 61 63 63 | .%.estimate.the.focal.length.acc |
9c00 | 75 72 61 74 65 6c 79 0a 20 20 20 0a 20 20 20 78 5f 67 72 69 64 28 3a 29 20 3d 20 78 5f 61 6c 6c | urately........x_grid(:).=.x_all |
9c20 | 5f 63 28 31 2c 3a 29 3b 0a 20 20 20 79 5f 67 72 69 64 28 3a 29 20 3d 20 78 5f 61 6c 6c 5f 63 28 | _c(1,:);....y_grid(:).=.x_all_c( |
9c40 | 32 2c 3a 29 3b 0a 20 20 20 20 20 20 20 20 20 0a 20 20 20 66 6f 72 20 6b 3d 31 3a 6e 5f 73 71 5f | 2,:);..............for.k=1:n_sq_ |
9c60 | 78 2b 31 2c 0a 20 20 20 20 20 20 5b 55 2c 53 2c 56 5d 20 3d 20 73 76 64 28 5b 78 5f 67 72 69 64 | x+1,.......[U,S,V].=.svd([x_grid |
9c80 | 28 6b 2c 3a 29 3b 79 5f 67 72 69 64 28 6b 2c 3a 29 3b 6f 6e 65 73 28 31 2c 6e 5f 73 71 5f 79 2b | (k,:);y_grid(k,:);ones(1,n_sq_y+ |
9ca0 | 31 29 5d 29 3b 0a 20 20 20 20 20 20 76 65 72 74 28 3a 2c 6b 29 20 3d 20 55 28 3a 2c 33 29 3b 0a | 1)]);.......vert(:,k).=.U(:,3);. |
9cc0 | 20 20 20 65 6e 64 3b 0a 20 20 20 0a 20 20 20 66 6f 72 20 6b 3d 31 3a 6e 5f 73 71 5f 79 2b 31 2c | ...end;........for.k=1:n_sq_y+1, |
9ce0 | 0a 20 20 20 20 20 20 5b 55 2c 53 2c 56 5d 20 3d 20 73 76 64 28 5b 78 5f 67 72 69 64 28 3a 2c 6b | .......[U,S,V].=.svd([x_grid(:,k |
9d00 | 29 27 3b 79 5f 67 72 69 64 28 3a 2c 6b 29 27 3b 6f 6e 65 73 28 31 2c 6e 5f 73 71 5f 78 2b 31 29 | )';y_grid(:,k)';ones(1,n_sq_x+1) |
9d20 | 5d 29 3b 0a 20 20 20 20 20 20 68 6f 72 69 28 3a 2c 6b 29 20 3d 20 55 28 3a 2c 33 29 3b 0a 20 20 | ]);.......hori(:,k).=.U(:,3);... |
9d40 | 20 65 6e 64 3b 0a 20 20 20 0a 20 20 20 25 20 32 20 70 72 69 6e 63 69 70 6c 65 20 56 61 6e 69 73 | .end;........%.2.principle.Vanis |
9d60 | 68 69 6e 67 20 70 6f 69 6e 74 73 3a 0a 20 20 20 5b 55 2c 53 2c 56 5d 20 3d 20 73 76 64 28 76 65 | hing.points:....[U,S,V].=.svd(ve |
9d80 | 72 74 29 3b 0a 20 20 20 56 5f 76 65 72 74 20 3d 20 55 28 3a 2c 33 29 3b 0a 20 20 20 5b 55 2c 53 | rt);....V_vert.=.U(:,3);....[U,S |
9da0 | 2c 56 5d 20 3d 20 73 76 64 28 68 6f 72 69 29 3b 0a 20 20 20 56 5f 68 6f 72 69 20 3d 20 55 28 3a | ,V].=.svd(hori);....V_hori.=.U(: |
9dc0 | 2c 33 29 3b 0a 20 20 20 0a 20 20 20 0a 0a 20 20 20 25 20 53 71 75 61 72 65 20 77 61 72 70 69 6e | ,3);.............%.Square.warpin |
9de0 | 67 3a 0a 20 20 20 0a 20 20 20 0a 20 20 20 76 65 72 74 5f 66 69 72 73 74 20 3d 20 76 65 72 74 28 | g:............vert_first.=.vert( |
9e00 | 3a 2c 31 29 20 2d 20 64 6f 74 28 56 5f 76 65 72 74 2c 76 65 72 74 28 3a 2c 31 29 29 2f 64 6f 74 | :,1).-.dot(V_vert,vert(:,1))/dot |
9e20 | 28 56 5f 76 65 72 74 2c 56 5f 76 65 72 74 29 20 2a 20 56 5f 76 65 72 74 3b 0a 20 20 20 76 65 72 | (V_vert,V_vert).*.V_vert;....ver |
9e40 | 74 5f 6c 61 73 74 20 3d 20 76 65 72 74 28 3a 2c 6e 5f 73 71 5f 78 2b 31 29 20 2d 20 64 6f 74 28 | t_last.=.vert(:,n_sq_x+1).-.dot( |
9e60 | 56 5f 76 65 72 74 2c 76 65 72 74 28 3a 2c 6e 5f 73 71 5f 78 2b 31 29 29 2f 64 6f 74 28 56 5f 76 | V_vert,vert(:,n_sq_x+1))/dot(V_v |
9e80 | 65 72 74 2c 56 5f 76 65 72 74 29 20 2a 20 56 5f 76 65 72 74 3b 0a 20 20 20 0a 20 20 20 68 6f 72 | ert,V_vert).*.V_vert;........hor |
9ea0 | 69 5f 66 69 72 73 74 20 3d 20 68 6f 72 69 28 3a 2c 31 29 20 2d 20 64 6f 74 28 56 5f 68 6f 72 69 | i_first.=.hori(:,1).-.dot(V_hori |
9ec0 | 2c 68 6f 72 69 28 3a 2c 31 29 29 2f 64 6f 74 28 56 5f 68 6f 72 69 2c 56 5f 68 6f 72 69 29 20 2a | ,hori(:,1))/dot(V_hori,V_hori).* |
9ee0 | 20 56 5f 68 6f 72 69 3b 0a 20 20 20 68 6f 72 69 5f 6c 61 73 74 20 3d 20 68 6f 72 69 28 3a 2c 6e | .V_hori;....hori_last.=.hori(:,n |
9f00 | 5f 73 71 5f 79 2b 31 29 20 2d 20 64 6f 74 28 56 5f 68 6f 72 69 2c 68 6f 72 69 28 3a 2c 6e 5f 73 | _sq_y+1).-.dot(V_hori,hori(:,n_s |
9f20 | 71 5f 79 2b 31 29 29 2f 64 6f 74 28 56 5f 68 6f 72 69 2c 56 5f 68 6f 72 69 29 20 2a 20 56 5f 68 | q_y+1))/dot(V_hori,V_hori).*.V_h |
9f40 | 6f 72 69 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 78 31 20 3d 20 63 72 6f 73 73 28 68 6f 72 69 5f | ori;............x1.=.cross(hori_ |
9f60 | 66 69 72 73 74 2c 76 65 72 74 5f 66 69 72 73 74 29 3b 0a 20 20 20 78 32 20 3d 20 63 72 6f 73 73 | first,vert_first);....x2.=.cross |
9f80 | 28 68 6f 72 69 5f 66 69 72 73 74 2c 76 65 72 74 5f 6c 61 73 74 29 3b 0a 20 20 20 78 33 20 3d 20 | (hori_first,vert_last);....x3.=. |
9fa0 | 63 72 6f 73 73 28 68 6f 72 69 5f 6c 61 73 74 2c 76 65 72 74 5f 6c 61 73 74 29 3b 0a 20 20 20 78 | cross(hori_last,vert_last);....x |
9fc0 | 34 20 3d 20 63 72 6f 73 73 28 68 6f 72 69 5f 6c 61 73 74 2c 76 65 72 74 5f 66 69 72 73 74 29 3b | 4.=.cross(hori_last,vert_first); |
9fe0 | 0a 20 20 20 0a 20 20 20 78 31 20 3d 20 78 31 2f 78 31 28 33 29 3b 0a 20 20 20 78 32 20 3d 20 78 | ........x1.=.x1/x1(3);....x2.=.x |
a000 | 32 2f 78 32 28 33 29 3b 0a 20 20 20 78 33 20 3d 20 78 33 2f 78 33 28 33 29 3b 0a 20 20 20 78 34 | 2/x2(3);....x3.=.x3/x3(3);....x4 |
a020 | 20 3d 20 78 34 2f 78 34 28 33 29 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 0a 20 20 20 5b 73 71 75 | .=.x4/x4(3);................[squ |
a040 | 61 72 65 5d 20 3d 20 52 65 63 74 61 6e 67 6c 65 32 53 71 75 61 72 65 28 5b 78 31 20 78 32 20 78 | are].=.Rectangle2Square([x1.x2.x |
a060 | 33 20 78 34 5d 2c 57 2c 4c 29 3b 0a 0a 20 20 20 79 31 20 3d 20 73 71 75 61 72 65 28 3a 2c 31 29 | 3.x4],W,L);.....y1.=.square(:,1) |
a080 | 3b 0a 20 20 20 79 32 20 3d 20 73 71 75 61 72 65 28 3a 2c 32 29 3b 0a 20 20 20 79 33 20 3d 20 73 | ;....y2.=.square(:,2);....y3.=.s |
a0a0 | 71 75 61 72 65 28 3a 2c 33 29 3b 0a 20 20 20 79 34 20 3d 20 73 71 75 61 72 65 28 3a 2c 34 29 3b | quare(:,3);....y4.=.square(:,4); |
a0c0 | 0a 0a 20 20 20 48 32 20 3d 20 63 72 6f 73 73 28 56 5f 76 65 72 74 2c 56 5f 68 6f 72 69 29 3b 0a | .....H2.=.cross(V_vert,V_hori);. |
a0e0 | 20 20 20 0a 20 20 20 56 5f 64 69 61 67 31 20 3d 20 63 72 6f 73 73 28 63 72 6f 73 73 28 79 31 2c | .......V_diag1.=.cross(cross(y1, |
a100 | 79 33 29 2c 48 32 29 3b 0a 20 20 20 56 5f 64 69 61 67 32 20 3d 20 63 72 6f 73 73 28 63 72 6f 73 | y3),H2);....V_diag2.=.cross(cros |
a120 | 73 28 79 32 2c 79 34 29 2c 48 32 29 3b 0a 0a 20 20 20 56 5f 64 69 61 67 31 20 3d 20 56 5f 64 69 | s(y2,y4),H2);.....V_diag1.=.V_di |
a140 | 61 67 31 20 2f 20 6e 6f 72 6d 28 56 5f 64 69 61 67 31 29 3b 0a 20 20 20 56 5f 64 69 61 67 32 20 | ag1./.norm(V_diag1);....V_diag2. |
a160 | 3d 20 56 5f 64 69 61 67 32 20 2f 20 6e 6f 72 6d 28 56 5f 64 69 61 67 32 29 3b 0a 0a 20 20 20 0a | =.V_diag2./.norm(V_diag2);...... |
a180 | 20 20 20 0a 20 20 20 0a 20 20 20 25 20 45 73 74 69 6d 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 | ...........%.Estimation.of.the.f |
a1a0 | 6f 63 61 6c 20 6c 65 6e 67 74 68 2c 20 61 6e 64 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 3a 0a | ocal.length,.and.normalization:. |
a1c0 | 20 20 20 0a 20 20 20 25 20 43 6f 6d 70 75 74 65 20 74 68 65 20 65 6c 6c 69 70 73 69 73 20 6f 66 | .......%.Compute.the.ellipsis.of |
a1e0 | 20 28 31 2f 66 5e 32 29 20 70 6f 73 69 74 69 6f 6e 73 3a 0a 20 20 20 25 20 61 20 2a 20 28 31 2f | .(1/f^2).positions:....%.a.*.(1/ |
a200 | 66 78 29 5e 32 20 2b 20 62 20 2a 20 28 31 2f 66 78 29 5e 32 20 3d 20 2d 63 0a 20 20 20 0a 20 20 | fx)^2.+.b.*.(1/fx)^2.=.-c....... |
a220 | 20 0a 20 20 20 61 31 20 3d 20 56 5f 68 6f 72 69 28 31 29 3b 0a 20 20 20 62 31 20 3d 20 56 5f 68 | .....a1.=.V_hori(1);....b1.=.V_h |
a240 | 6f 72 69 28 32 29 3b 0a 20 20 20 63 31 20 3d 20 56 5f 68 6f 72 69 28 33 29 3b 0a 20 20 20 0a 20 | ori(2);....c1.=.V_hori(3);...... |
a260 | 20 20 61 32 20 3d 20 56 5f 76 65 72 74 28 31 29 3b 0a 20 20 20 62 32 20 3d 20 56 5f 76 65 72 74 | ..a2.=.V_vert(1);....b2.=.V_vert |
a280 | 28 32 29 3b 0a 20 20 20 63 32 20 3d 20 56 5f 76 65 72 74 28 33 29 3b 0a 20 20 20 0a 20 20 20 61 | (2);....c2.=.V_vert(3);........a |
a2a0 | 33 20 3d 20 56 5f 64 69 61 67 31 28 31 29 3b 0a 20 20 20 62 33 20 3d 20 56 5f 64 69 61 67 31 28 | 3.=.V_diag1(1);....b3.=.V_diag1( |
a2c0 | 32 29 3b 0a 20 20 20 63 33 20 3d 20 56 5f 64 69 61 67 31 28 33 29 3b 0a 20 20 20 0a 20 20 20 61 | 2);....c3.=.V_diag1(3);........a |
a2e0 | 34 20 3d 20 56 5f 64 69 61 67 32 28 31 29 3b 0a 20 20 20 62 34 20 3d 20 56 5f 64 69 61 67 32 28 | 4.=.V_diag2(1);....b4.=.V_diag2( |
a300 | 32 29 3b 0a 20 20 20 63 34 20 3d 20 56 5f 64 69 61 67 32 28 33 29 3b 0a 20 20 20 0a 20 20 20 0a | 2);....c4.=.V_diag2(3);......... |
a320 | 20 20 20 69 66 20 74 77 6f 5f 66 6f 63 61 6c 2c 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 | ...if.two_focal,................ |
a340 | 20 20 20 20 20 41 20 3d 20 5b 61 31 2a 61 32 20 62 31 2a 62 32 3b 61 33 2a 61 34 20 62 33 2a 62 | .....A.=.[a1*a2.b1*b2;a3*a4.b3*b |
a360 | 34 5d 3b 0a 20 20 20 20 20 20 62 20 3d 20 2d 5b 63 31 2a 63 32 3b 63 33 2a 63 34 5d 3b 0a 20 20 | 4];.......b.=.-[c1*c2;c3*c4];... |
a380 | 20 20 20 20 0a 20 20 20 20 20 20 66 20 3d 20 73 71 72 74 28 61 62 73 28 31 2e 2f 28 69 6e 76 28 | ...........f.=.sqrt(abs(1./(inv( |
a3a0 | 41 29 2a 62 29 29 29 3b 0a 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 66 | A)*b)));.....else..............f |
a3c0 | 20 3d 20 73 71 72 74 28 61 62 73 28 2d 28 63 31 2a 63 32 2a 28 61 31 2a 61 32 20 2b 20 62 31 2a | .=.sqrt(abs(-(c1*c2*(a1*a2.+.b1* |
a3e0 | 62 32 29 20 2b 20 63 33 2a 63 34 2a 28 61 33 2a 61 34 20 2b 20 62 33 2a 62 34 29 29 2f 28 63 31 | b2).+.c3*c4*(a3*a4.+.b3*b4))/(c1 |
a400 | 5e 32 2a 63 32 5e 32 20 2b 20 63 33 5e 32 2a 63 34 5e 32 29 29 29 3b 0a 20 20 20 20 20 20 0a 20 | ^2*c2^2.+.c3^2*c4^2)));......... |
a420 | 20 20 20 20 20 66 20 3d 20 5b 66 3b 66 5d 3b 0a 20 20 20 20 20 20 0a 20 20 20 65 6e 64 3b 0a 20 | .....f.=.[f;f];...........end;.. |
a440 | 20 20 0a 0a 20 20 20 0a 20 20 20 25 20 52 45 4d 41 52 4b 3a 0a 20 20 20 25 20 69 66 20 62 6f 74 | ...........%.REMARK:....%.if.bot |
a460 | 68 20 61 20 61 6e 64 20 62 20 61 72 65 20 73 6d 61 6c 6c 2c 20 74 68 65 20 63 61 6c 69 62 72 61 | h.a.and.b.are.small,.the.calibra |
a480 | 74 69 6f 6e 20 69 73 20 69 6d 70 6f 73 73 69 62 6c 65 2e 0a 20 20 20 25 20 69 66 20 6f 6e 65 20 | tion.is.impossible.....%.if.one. |
a4a0 | 6f 66 20 74 68 65 6d 20 69 73 20 73 6d 61 6c 6c 2c 20 6f 6e 6c 79 20 74 68 65 20 6f 74 68 65 72 | of.them.is.small,.only.the.other |
a4c0 | 20 66 6f 63 61 6c 20 6c 65 6e 67 74 68 20 69 73 20 6f 62 73 65 72 76 61 62 6c 65 0a 20 20 20 25 | .focal.length.is.observable....% |
a4e0 | 20 69 66 20 6e 6f 6e 65 20 69 73 20 73 6d 61 6c 6c 2c 20 62 6f 74 68 20 66 6f 63 61 6c 73 20 61 | .if.none.is.small,.both.focals.a |
a500 | 72 65 20 6f 62 73 65 72 76 61 62 6c 65 0a 20 20 20 0a 20 20 20 0a 20 20 20 66 63 5f 32 20 3d 20 | re.observable............fc_2.=. |
a520 | 66 63 5f 32 20 2e 2a 20 66 3b 0a 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 25 20 44 45 42 55 47 | fc_2..*.f;...............%.DEBUG |
a540 | 20 50 41 52 54 3a 20 66 69 78 20 66 6f 63 61 6c 20 74 6f 20 35 30 30 2e 2e 2e 0a 20 20 20 25 66 | .PART:.fix.focal.to.500.......%f |
a560 | 63 5f 32 3d 20 5b 35 30 30 3b 35 30 30 5d 3b 20 64 69 73 70 28 27 4c 69 6e 65 20 32 39 33 20 74 | c_2=.[500;500];.disp('Line.293.t |
a580 | 6f 20 62 65 20 65 61 72 61 73 65 64 20 69 6e 20 44 69 73 74 6f 72 32 43 61 6c 69 62 2e 6d 27 29 | o.be.earased.in.Distor2Calib.m') |
a5a0 | 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 25 20 65 6e 64 20 6f 66 20 66 6f 63 61 6c 20 63 6f 6d 70 | ;............%.end.of.focal.comp |
a5c0 | 65 6e 73 61 74 69 6f 6e 0a 20 20 20 0a 20 20 20 25 20 6e 6f 72 6d 61 6c 69 7a 65 20 62 79 20 74 | ensation........%.normalize.by.t |
a5e0 | 68 65 20 63 75 72 72 65 6e 74 20 66 6f 63 61 6c 3a 0a 20 20 20 0a 20 20 20 78 5f 61 6c 6c 20 3d | he.current.focal:........x_all.= |
a600 | 20 5b 67 72 69 64 5f 70 74 73 5f 63 65 6e 74 65 72 65 64 28 31 2c 3a 29 2f 66 63 5f 32 28 31 29 | .[grid_pts_centered(1,:)/fc_2(1) |
a620 | 3b 67 72 69 64 5f 70 74 73 5f 63 65 6e 74 65 72 65 64 28 32 2c 3a 29 2f 66 63 5f 32 28 32 29 5d | ;grid_pts_centered(2,:)/fc_2(2)] |
a640 | 3b 0a 20 20 20 0a 20 20 20 25 20 43 6f 6d 70 65 6e 73 61 74 65 20 62 79 20 74 68 65 20 64 69 73 | ;........%.Compensate.by.the.dis |
a660 | 74 6f 72 74 69 6f 6e 20 66 61 63 74 6f 72 3a 0a 20 20 20 0a 20 20 20 78 5f 61 6c 6c 5f 63 20 3d | tortion.factor:........x_all_c.= |
a680 | 20 63 6f 6d 70 5f 64 69 73 74 6f 72 74 69 6f 6e 28 78 5f 61 6c 6c 2c 6b 5f 64 69 73 74 29 3b 0a | .comp_distortion(x_all,k_dist);. |
a6a0 | 20 20 20 0a 65 6e 64 3b 0a 20 20 20 0a 25 20 41 74 20 74 68 61 74 20 70 6f 69 6e 74 2c 20 77 65 | ....end;.....%.At.that.point,.we |
a6c0 | 20 68 6f 70 65 20 74 68 61 74 20 74 68 65 20 64 69 73 74 6f 72 74 69 6f 6e 20 69 73 20 67 6f 6e | .hope.that.the.distortion.is.gon |
a6e0 | 65 2e 2e 2e 0a 0a 78 5f 67 72 69 64 28 3a 29 20 3d 20 78 5f 61 6c 6c 5f 63 28 31 2c 3a 29 3b 0a | e.....x_grid(:).=.x_all_c(1,:);. |
a700 | 79 5f 67 72 69 64 28 3a 29 20 3d 20 78 5f 61 6c 6c 5f 63 28 32 2c 3a 29 3b 0a 0a 66 6f 72 20 6b | y_grid(:).=.x_all_c(2,:);..for.k |
a720 | 3d 31 3a 6e 5f 73 71 5f 78 2b 31 2c 0a 20 20 20 5b 55 2c 53 2c 56 5d 20 3d 20 73 76 64 28 5b 78 | =1:n_sq_x+1,....[U,S,V].=.svd([x |
a740 | 5f 67 72 69 64 28 6b 2c 3a 29 3b 79 5f 67 72 69 64 28 6b 2c 3a 29 3b 6f 6e 65 73 28 31 2c 6e 5f | _grid(k,:);y_grid(k,:);ones(1,n_ |
a760 | 73 71 5f 79 2b 31 29 5d 29 3b 0a 20 20 20 76 65 72 74 28 3a 2c 6b 29 20 3d 20 55 28 3a 2c 33 29 | sq_y+1)]);....vert(:,k).=.U(:,3) |
a780 | 3b 0a 65 6e 64 3b 0a 0a 66 6f 72 20 6b 3d 31 3a 6e 5f 73 71 5f 79 2b 31 2c 0a 20 20 20 5b 55 2c | ;.end;..for.k=1:n_sq_y+1,....[U, |
a7a0 | 53 2c 56 5d 20 3d 20 73 76 64 28 5b 78 5f 67 72 69 64 28 3a 2c 6b 29 27 3b 79 5f 67 72 69 64 28 | S,V].=.svd([x_grid(:,k)';y_grid( |
a7c0 | 3a 2c 6b 29 27 3b 6f 6e 65 73 28 31 2c 6e 5f 73 71 5f 78 2b 31 29 5d 29 3b 0a 20 20 20 68 6f 72 | :,k)';ones(1,n_sq_x+1)]);....hor |
a7e0 | 69 28 3a 2c 6b 29 20 3d 20 55 28 3a 2c 33 29 3b 0a 65 6e 64 3b 0a 0a 25 20 56 61 6e 69 73 68 69 | i(:,k).=.U(:,3);.end;..%.Vanishi |
a800 | 6e 67 20 70 6f 69 6e 74 73 3a 0a 5b 55 2c 53 2c 56 5d 20 3d 20 73 76 64 28 76 65 72 74 29 3b 0a | ng.points:.[U,S,V].=.svd(vert);. |
a820 | 56 5f 76 65 72 74 20 3d 20 55 28 3a 2c 33 29 3b 0a 5b 55 2c 53 2c 56 5d 20 3d 20 73 76 64 28 68 | V_vert.=.U(:,3);.[U,S,V].=.svd(h |
a840 | 6f 72 69 29 3b 0a 56 5f 68 6f 72 69 20 3d 20 55 28 3a 2c 33 29 3b 0a 0a 25 20 48 6f 72 69 7a 6f | ori);.V_hori.=.U(:,3);..%.Horizo |
a860 | 6e 3a 0a 0a 48 5f 32 20 3d 20 63 72 6f 73 73 28 56 5f 76 65 72 74 2c 56 5f 68 6f 72 69 29 3b 0a | n:..H_2.=.cross(V_vert,V_hori);. |
a880 | 20 20 20 0a 25 20 20 20 48 5f 32 20 3d 20 63 72 6f 73 73 28 56 5f 76 65 72 74 2c 56 5f 68 6f 72 | ....%...H_2.=.cross(V_vert,V_hor |
a8a0 | 69 29 3b 0a 0a 25 20 70 69 63 6b 20 61 20 70 6c 61 6e 65 20 69 6e 20 66 72 6f 6e 74 20 6f 66 20 | i);..%.pick.a.plane.in.front.of. |
a8c0 | 74 68 65 20 63 61 6d 65 72 61 20 28 70 6f 73 69 74 69 76 65 20 64 65 70 74 68 29 0a 69 66 20 48 | the.camera.(positive.depth).if.H |
a8e0 | 5f 32 28 33 29 20 3c 20 30 2c 20 48 5f 32 20 3d 20 2d 48 5f 32 3b 20 65 6e 64 3b 0a 0a 0a 25 20 | _2(3).<.0,.H_2.=.-H_2;.end;...%. |
a900 | 52 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 3a 0a 0a 69 66 20 56 5f 68 6f 72 69 28 31 29 20 3c | Rotation.matrix:..if.V_hori(1).< |
a920 | 20 30 2c 20 56 5f 68 6f 72 69 20 3d 20 2d 56 5f 68 6f 72 69 3b 20 65 6e 64 3b 0a 0a 56 5f 68 6f | .0,.V_hori.=.-V_hori;.end;..V_ho |
a940 | 72 69 20 3d 20 56 5f 68 6f 72 69 2f 6e 6f 72 6d 28 56 5f 68 6f 72 69 29 3b 0a 48 5f 32 20 3d 20 | ri.=.V_hori/norm(V_hori);.H_2.=. |
a960 | 48 5f 32 2f 6e 6f 72 6d 28 48 5f 32 29 3b 0a 0a 56 5f 68 6f 72 69 20 3d 20 56 5f 68 6f 72 69 20 | H_2/norm(H_2);..V_hori.=.V_hori. |
a980 | 2d 20 64 6f 74 28 56 5f 68 6f 72 69 2c 48 5f 32 29 2a 48 5f 32 3b 0a 0a 52 63 5f 32 20 3d 20 5b | -.dot(V_hori,H_2)*H_2;..Rc_2.=.[ |
a9a0 | 56 5f 68 6f 72 69 20 63 72 6f 73 73 28 48 5f 32 2c 56 5f 68 6f 72 69 29 20 48 5f 32 5d 3b 0a 0a | V_hori.cross(H_2,V_hori).H_2];.. |
a9c0 | 52 63 5f 32 20 3d 20 52 63 5f 32 20 2f 20 64 65 74 28 52 63 5f 32 29 3b 0a 0a 25 6f 6d 63 5f 32 | Rc_2.=.Rc_2./.det(Rc_2);..%omc_2 |
a9e0 | 20 3d 20 72 6f 64 72 69 67 75 65 73 28 52 63 5f 32 29 3b 0a 0a 25 52 63 5f 32 20 3d 20 72 6f 64 | .=.rodrigues(Rc_2);..%Rc_2.=.rod |
aa00 | 72 69 67 75 65 73 28 6f 6d 63 5f 32 29 3b 0a 0a 25 20 46 69 6e 64 20 74 68 65 20 64 69 73 74 61 | rigues(omc_2);..%.Find.the.dista |
aa20 | 6e 63 65 20 6f 66 20 74 68 65 20 70 6c 61 6e 65 20 66 6f 72 20 74 72 61 6e 73 6c 61 74 69 6f 6e | nce.of.the.plane.for.translation |
aa40 | 20 76 65 63 74 6f 72 3a 0a 0a 78 63 5f 32 20 3d 20 5b 78 5f 61 6c 6c 5f 63 3b 6f 6e 65 73 28 31 | .vector:..xc_2.=.[x_all_c;ones(1 |
aa60 | 2c 4e 70 29 5d 3b 0a 0a 5a 63 5f 32 20 3d 20 31 2e 2f 73 75 6d 28 78 63 5f 32 20 2e 2a 20 28 52 | ,Np)];..Zc_2.=.1./sum(xc_2..*.(R |
aa80 | 63 5f 32 28 3a 2c 33 29 2a 6f 6e 65 73 28 31 2c 4e 70 29 29 29 3b 0a 0a 58 6f 5f 32 20 3d 20 5b | c_2(:,3)*ones(1,Np)));..Xo_2.=.[ |
aaa0 | 73 75 6d 28 78 63 5f 32 20 2e 2a 20 28 52 63 5f 32 28 3a 2c 31 29 2a 6f 6e 65 73 28 31 2c 4e 70 | sum(xc_2..*.(Rc_2(:,1)*ones(1,Np |
aac0 | 29 29 29 2e 2a 5a 63 5f 32 20 3b 20 73 75 6d 28 78 63 5f 32 20 2e 2a 20 28 52 63 5f 32 28 3a 2c | ))).*Zc_2.;.sum(xc_2..*.(Rc_2(:, |
aae0 | 32 29 2a 6f 6e 65 73 28 31 2c 4e 70 29 29 29 2e 2a 5a 63 5f 32 5d 3b 0a 0a 58 58 6f 5f 32 20 3d | 2)*ones(1,Np))).*Zc_2];..XXo_2.= |
ab00 | 20 58 6f 5f 32 20 2d 20 6d 65 61 6e 28 58 6f 5f 32 27 29 27 2a 6f 6e 65 73 28 31 2c 4e 70 29 3b | .Xo_2.-.mean(Xo_2')'*ones(1,Np); |
ab20 | 0a 0a 64 69 73 74 61 6e 63 65 5f 78 20 3d 20 6e 6f 72 6d 28 58 67 72 69 64 5f 32 28 31 2c 3a 29 | ..distance_x.=.norm(Xgrid_2(1,:) |
ab40 | 29 2f 6e 6f 72 6d 28 58 58 6f 5f 32 28 31 2c 3a 29 29 3b 0a 64 69 73 74 61 6e 63 65 5f 79 20 3d | )/norm(XXo_2(1,:));.distance_y.= |
ab60 | 20 6e 6f 72 6d 28 58 67 72 69 64 5f 32 28 32 2c 3a 29 29 2f 6e 6f 72 6d 28 58 58 6f 5f 32 28 32 | .norm(Xgrid_2(2,:))/norm(XXo_2(2 |
ab80 | 2c 3a 29 29 3b 0a 0a 0a 64 69 73 74 61 6e 63 65 20 3d 20 73 75 6d 28 73 75 6d 28 58 58 6f 5f 32 | ,:));...distance.=.sum(sum(XXo_2 |
aba0 | 28 31 3a 32 2c 3a 29 2e 2a 58 67 72 69 64 5f 32 28 31 3a 32 2c 3a 29 29 29 2f 73 75 6d 28 73 75 | (1:2,:).*Xgrid_2(1:2,:)))/sum(su |
abc0 | 6d 28 58 58 6f 5f 32 28 31 3a 32 2c 3a 29 2e 5e 32 29 29 3b 0a 0a 61 6c 70 68 61 20 3d 20 61 62 | m(XXo_2(1:2,:).^2));..alpha.=.ab |
abe0 | 73 28 64 69 73 74 61 6e 63 65 5f 78 20 2d 20 64 69 73 74 61 6e 63 65 5f 79 29 2f 64 69 73 74 61 | s(distance_x.-.distance_y)/dista |
ac00 | 6e 63 65 3b 0a 0a 69 66 20 28 61 6c 70 68 61 3e 30 2e 31 29 26 7e 74 77 6f 5f 66 6f 63 61 6c 2c | nce;..if.(alpha>0.1)&~two_focal, |
ac20 | 0a 20 20 20 64 69 73 70 28 27 53 68 6f 75 6c 64 20 75 73 65 20 74 77 6f 20 66 6f 63 61 6c 73 20 | ....disp('Should.use.two.focals. |
ac40 | 69 6e 20 78 20 61 6e 64 20 79 2e 2e 2e 27 29 3b 0a 65 6e 64 3b 0a 0a 25 20 44 65 64 75 63 65 20 | in.x.and.y...');.end;..%.Deduce. |
ac60 | 74 68 65 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 76 65 63 74 6f 72 3a 0a 0a 54 63 5f 32 20 3d 20 | the.translation.vector:..Tc_2.=. |
ac80 | 64 69 73 74 61 6e 63 65 20 2a 20 48 5f 32 3b 0a 0a 0a 0a 0a 0a 72 65 74 75 72 6e 3b 0a 0a 20 20 | distance.*.H_2;......return;.... |
aca0 | 20 56 5f 68 6f 72 69 5f 70 69 78 2f 56 5f 68 6f 72 69 5f 70 69 78 28 33 29 0a 20 20 20 56 5f 76 | .V_hori_pix/V_hori_pix(3)....V_v |
acc0 | 65 72 74 5f 70 69 78 2f 56 5f 76 65 72 74 5f 70 69 78 28 33 29 0a 20 20 20 56 5f 64 69 61 67 31 | ert_pix/V_vert_pix(3)....V_diag1 |
ace0 | 5f 70 69 78 2f 56 5f 64 69 61 67 31 5f 70 69 78 28 33 29 0a 20 20 20 56 5f 64 69 61 67 32 5f 70 | _pix/V_diag1_pix(3)....V_diag2_p |
ad00 | 69 78 2f 56 5f 64 69 61 67 32 5f 70 69 78 28 33 29 0a 20 20 20 0a 20 20 20 69 66 20 4e 5f 6d 69 | ix/V_diag2_pix(3)........if.N_mi |
ad20 | 6e 20 3c 20 32 2c 0a 20 20 20 20 20 20 75 73 65 5f 64 69 61 67 20 3d 20 30 3b 0a 20 20 20 20 20 | n.<.2,.......use_diag.=.0;...... |
ad40 | 20 74 77 6f 5f 66 6f 63 61 6c 20 3d 20 30 3b 0a 20 20 20 20 20 20 64 69 73 70 28 27 43 61 6e 6e | .two_focal.=.0;.......disp('Cann |
ad60 | 6f 74 20 65 73 74 69 6d 61 74 65 20 74 77 6f 20 66 6f 63 61 6c 73 20 28 6e 6f 20 65 78 69 73 74 | ot.estimate.two.focals.(no.exist |
ad80 | 69 6e 67 20 64 69 61 67 6f 6e 61 6c 73 29 27 29 3b 20 20 20 0a 20 20 20 65 6c 73 65 0a 20 20 20 | ing.diagonals)');.......else.... |
ada0 | 20 20 20 75 73 65 5f 64 69 61 67 20 3d 20 31 3b 0a 20 20 20 20 20 20 44 65 6c 74 61 5f 4e 20 3d | ...use_diag.=.1;.......Delta_N.= |
adc0 | 20 61 62 73 28 4e 5f 78 2d 4e 5f 79 29 3b 0a 20 20 20 20 20 20 4e 5f 65 78 74 72 61 20 3d 20 72 | .abs(N_x-N_y);.......N_extra.=.r |
ade0 | 6f 75 6e 64 28 28 4e 5f 6d 69 6e 20 2d 20 44 65 6c 74 61 5f 4e 20 2d 20 31 29 2f 32 29 3b 0a 20 | ound((N_min.-.Delta_N.-.1)/2);.. |
ae00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 65 78 74 72 61 63 74 5f 70 61 72 61 6d 65 74 65 72 73 | TOOLBOX_calib/extract_parameters |
ae20 | 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .m.............................. |
ae40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ae60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
ae80 | 20 20 20 31 32 34 30 20 20 36 37 36 33 30 37 30 32 32 34 20 20 31 32 34 37 30 00 20 00 00 00 00 | ...1240..6763070224..12470...... |
aea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
aec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
aee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
af00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
af20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
af40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
af60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
af80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
afa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
afc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
afe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b000 | 0a 25 25 25 20 45 78 74 72 61 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6e 61 6c 20 69 6e 74 | .%%%.Extraction.of.the.final.int |
b020 | 72 69 6e 73 69 63 20 61 6e 64 20 65 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 61 74 65 72 73 3a | rinsic.and.extrinsic.paramaters: |
b040 | 0a 0a 0a 66 63 20 3d 20 73 6f 6c 75 74 69 6f 6e 28 31 3a 32 29 3b 0a 6b 63 20 3d 20 73 6f 6c 75 | ...fc.=.solution(1:2);.kc.=.solu |
b060 | 74 69 6f 6e 28 33 3a 36 29 3b 0a 63 63 20 3d 20 73 6f 6c 75 74 69 6f 6e 28 36 2a 6e 5f 69 6d 61 | tion(3:6);.cc.=.solution(6*n_ima |
b080 | 20 2b 20 34 20 2b 33 3a 36 2a 6e 5f 69 6d 61 20 2b 20 35 20 2b 33 29 3b 0a 0a 25 20 43 61 6c 69 | .+.4.+3:6*n_ima.+.5.+3);..%.Cali |
b0a0 | 62 72 61 74 69 6f 6e 20 6d 61 74 72 69 78 3a 0a 09 0a 4b 4b 20 3d 20 5b 66 63 28 31 29 20 30 20 | bration.matrix:...KK.=.[fc(1).0. |
b0c0 | 63 63 28 31 29 3b 30 20 66 63 28 32 29 20 63 63 28 32 29 3b 20 30 20 30 20 31 5d 3b 0a 69 6e 76 | cc(1);0.fc(2).cc(2);.0.0.1];.inv |
b0e0 | 5f 4b 4b 20 3d 20 69 6e 76 28 4b 4b 29 3b 09 0a 0a 25 20 45 78 74 72 61 63 74 20 74 68 65 20 65 | _KK.=.inv(KK);...%.Extract.the.e |
b100 | 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 74 65 72 73 2c 20 61 6e 64 20 72 65 63 6f 6d 70 75 74 | xtrinsic.paramters,.and.recomput |
b120 | 65 72 20 74 68 65 20 63 6f 6c 6c 69 6e 65 61 74 69 6f 6e 73 0a 0a 66 6f 72 20 6b 6b 20 3d 20 31 | er.the.collineations..for.kk.=.1 |
b140 | 3a 6e 5f 69 6d 61 2c 0a 20 20 20 0a 20 20 20 6f 6d 63 6b 6b 20 3d 20 73 6f 6c 75 74 69 6f 6e 28 | :n_ima,........omckk.=.solution( |
b160 | 34 2b 36 2a 28 6b 6b 2d 31 29 20 2b 20 33 3a 36 2a 6b 6b 20 2b 20 33 29 3b 0a 20 20 20 0a 20 20 | 4+6*(kk-1).+.3:6*kk.+.3);....... |
b180 | 20 54 63 6b 6b 20 3d 20 73 6f 6c 75 74 69 6f 6e 28 36 2a 6b 6b 2b 31 20 2b 20 33 3a 36 2a 6b 6b | .Tckk.=.solution(6*kk+1.+.3:6*kk |
b1a0 | 2b 33 20 2b 20 33 29 3b 0a 20 20 20 0a 20 20 20 52 63 6b 6b 20 3d 20 72 6f 64 72 69 67 75 65 73 | +3.+.3);........Rckk.=.rodrigues |
b1c0 | 28 6f 6d 63 6b 6b 29 3b 0a 20 20 20 0a 20 20 20 48 6b 6b 20 3d 20 4b 4b 20 2a 20 5b 52 63 6b 6b | (omckk);........Hkk.=.KK.*.[Rckk |
b1e0 | 28 3a 2c 31 29 20 52 63 6b 6b 28 3a 2c 32 29 20 54 63 6b 6b 5d 3b 0a 20 20 20 0a 20 20 20 48 6b | (:,1).Rckk(:,2).Tckk];........Hk |
b200 | 6b 20 3d 20 48 6b 6b 20 2f 20 48 6b 6b 28 33 2c 33 29 3b 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 | k.=.Hkk./.Hkk(3,3);........eval( |
b220 | 5b 27 6f 6d 63 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 3d 20 6f 6d 63 6b 6b 3b 27 5d | ['omc_'.num2str(kk).'.=.omckk;'] |
b240 | 29 3b 0a 20 20 20 65 76 61 6c 28 5b 27 54 63 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 | );....eval(['Tc_'.num2str(kk).'. |
b260 | 3d 20 54 63 6b 6b 3b 27 5d 29 3b 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 48 5f 27 20 6e 75 | =.Tckk;']);........eval(['H_'.nu |
b280 | 6d 32 73 74 72 28 6b 6b 29 20 27 3d 48 6b 6b 3b 27 5d 29 3b 0a 20 20 20 0a 65 6e 64 3b 0a 0a 0a | m2str(kk).'=Hkk;']);.....end;... |
b2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b400 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 67 69 6e 70 75 74 33 2e 6d 00 00 00 00 00 00 00 00 00 | TOOLBOX_calib/ginput3.m......... |
b420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b460 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
b480 | 20 20 31 34 33 30 34 20 20 36 37 36 33 30 37 30 32 32 35 20 20 31 30 32 31 32 00 20 00 00 00 00 | ..14304..6763070225..10212...... |
b4a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b4c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b4e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b5a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b5c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
b600 | 66 75 6e 63 74 69 6f 6e 20 5b 6f 75 74 31 2c 6f 75 74 32 2c 6f 75 74 33 5d 20 3d 20 67 69 6e 70 | function.[out1,out2,out3].=.ginp |
b620 | 75 74 32 28 61 72 67 31 29 0a 25 47 49 4e 50 55 54 20 47 72 61 70 68 69 63 61 6c 20 69 6e 70 75 | ut2(arg1).%GINPUT.Graphical.inpu |
b640 | 74 20 66 72 6f 6d 20 6d 6f 75 73 65 2e 0a 25 20 20 20 5b 58 2c 59 5d 20 3d 20 47 49 4e 50 55 54 | t.from.mouse..%...[X,Y].=.GINPUT |
b660 | 28 4e 29 20 67 65 74 73 20 4e 20 70 6f 69 6e 74 73 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 | (N).gets.N.points.from.the.curre |
b680 | 6e 74 20 61 78 65 73 20 61 6e 64 20 72 65 74 75 72 6e 73 20 0a 25 20 20 20 74 68 65 20 58 2d 20 | nt.axes.and.returns..%...the.X-. |
b6a0 | 61 6e 64 20 59 2d 63 6f 6f 72 64 69 6e 61 74 65 73 20 69 6e 20 6c 65 6e 67 74 68 20 4e 20 76 65 | and.Y-coordinates.in.length.N.ve |
b6c0 | 63 74 6f 72 73 20 58 20 61 6e 64 20 59 2e 20 20 54 68 65 20 63 75 72 73 6f 72 0a 25 20 20 20 63 | ctors.X.and.Y...The.cursor.%...c |
b6e0 | 61 6e 20 62 65 20 70 6f 73 69 74 69 6f 6e 65 64 20 75 73 69 6e 67 20 61 20 6d 6f 75 73 65 20 28 | an.be.positioned.using.a.mouse.( |
b700 | 6f 72 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 41 72 72 6f 77 20 4b 65 79 73 20 6f 6e 20 73 6f | or.by.using.the.Arrow.Keys.on.so |
b720 | 6d 65 20 0a 25 20 20 20 73 79 73 74 65 6d 73 29 2e 20 20 44 61 74 61 20 70 6f 69 6e 74 73 20 61 | me..%...systems)...Data.points.a |
b740 | 72 65 20 65 6e 74 65 72 65 64 20 62 79 20 70 72 65 73 73 69 6e 67 20 61 20 6d 6f 75 73 65 20 62 | re.entered.by.pressing.a.mouse.b |
b760 | 75 74 74 6f 6e 0a 25 20 20 20 6f 72 20 61 6e 79 20 6b 65 79 20 6f 6e 20 74 68 65 20 6b 65 79 62 | utton.%...or.any.key.on.the.keyb |
b780 | 6f 61 72 64 20 65 78 63 65 70 74 20 63 61 72 72 69 61 67 65 20 72 65 74 75 72 6e 2c 20 77 68 69 | oard.except.carriage.return,.whi |
b7a0 | 63 68 20 74 65 72 6d 69 6e 61 74 65 73 0a 25 20 20 20 74 68 65 20 69 6e 70 75 74 20 62 65 66 6f | ch.terminates.%...the.input.befo |
b7c0 | 72 65 20 4e 20 70 6f 69 6e 74 73 20 61 72 65 20 65 6e 74 65 72 65 64 2e 0a 25 0a 25 20 20 20 5b | re.N.points.are.entered..%.%...[ |
b7e0 | 58 2c 59 5d 20 3d 20 47 49 4e 50 55 54 20 67 61 74 68 65 72 73 20 61 6e 20 75 6e 6c 69 6d 69 74 | X,Y].=.GINPUT.gathers.an.unlimit |
b800 | 65 64 20 6e 75 6d 62 65 72 20 6f 66 20 70 6f 69 6e 74 73 20 75 6e 74 69 6c 20 74 68 65 0a 25 20 | ed.number.of.points.until.the.%. |
b820 | 20 20 72 65 74 75 72 6e 20 6b 65 79 20 69 73 20 70 72 65 73 73 65 64 2e 0a 25 20 0a 25 20 20 20 | ..return.key.is.pressed..%..%... |
b840 | 5b 58 2c 59 2c 42 55 54 54 4f 4e 5d 20 3d 20 47 49 4e 50 55 54 28 4e 29 20 72 65 74 75 72 6e 73 | [X,Y,BUTTON].=.GINPUT(N).returns |
b860 | 20 61 20 74 68 69 72 64 20 72 65 73 75 6c 74 2c 20 42 55 54 54 4f 4e 2c 20 74 68 61 74 20 0a 25 | .a.third.result,.BUTTON,.that..% |
b880 | 20 20 20 63 6f 6e 74 61 69 6e 73 20 61 20 76 65 63 74 6f 72 20 6f 66 20 69 6e 74 65 67 65 72 73 | ...contains.a.vector.of.integers |
b8a0 | 20 73 70 65 63 69 66 79 69 6e 67 20 77 68 69 63 68 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 77 | .specifying.which.mouse.button.w |
b8c0 | 61 73 0a 25 20 20 20 75 73 65 64 20 28 31 2c 32 2c 33 20 66 72 6f 6d 20 6c 65 66 74 29 20 6f 72 | as.%...used.(1,2,3.from.left).or |
b8e0 | 20 41 53 43 49 49 20 6e 75 6d 62 65 72 73 20 69 66 20 61 20 6b 65 79 20 6f 6e 20 74 68 65 20 6b | .ASCII.numbers.if.a.key.on.the.k |
b900 | 65 79 62 6f 61 72 64 0a 25 20 20 20 77 61 73 20 75 73 65 64 2e 0a 0a 25 20 20 20 43 6f 70 79 72 | eyboard.%...was.used...%...Copyr |
b920 | 69 67 68 74 20 28 63 29 20 31 39 38 34 2d 39 36 20 62 79 20 54 68 65 20 4d 61 74 68 57 6f 72 6b | ight.(c).1984-96.by.The.MathWork |
b940 | 73 2c 20 49 6e 63 2e 0a 25 20 20 20 24 52 65 76 69 73 69 6f 6e 3a 20 35 2e 31 38 20 24 20 20 24 | s,.Inc..%...$Revision:.5.18.$..$ |
b960 | 44 61 74 65 3a 20 31 39 39 36 2f 31 31 2f 31 30 20 31 37 3a 34 38 3a 30 38 20 24 0a 0a 25 20 46 | Date:.1996/11/10.17:48:08.$..%.F |
b980 | 69 78 65 64 20 76 65 72 73 69 6f 6e 20 62 79 20 4a 65 61 6e 2d 59 76 65 73 20 42 6f 75 67 75 65 | ixed.version.by.Jean-Yves.Bougue |
b9a0 | 74 20 74 6f 20 68 61 76 65 20 61 20 63 72 6f 73 73 20 69 6e 73 74 65 61 64 20 6f 66 20 32 20 6c | t.to.have.a.cross.instead.of.2.l |
b9c0 | 69 6e 65 73 0a 25 20 4d 6f 72 65 20 76 69 73 69 62 6c 65 20 66 6f 72 20 69 6d 61 67 65 73 0a 0a | ines.%.More.visible.for.images.. |
b9e0 | 50 20 3d 20 4e 61 4e 2a 6f 6e 65 73 28 31 36 2c 31 36 29 3b 0a 50 28 31 3a 31 35 2c 31 3a 31 35 | P.=.NaN*ones(16,16);.P(1:15,1:15 |
ba00 | 29 20 3d 20 32 2a 6f 6e 65 73 28 31 35 2c 31 35 29 3b 0a 50 28 32 3a 31 34 2c 32 3a 31 34 29 20 | ).=.2*ones(15,15);.P(2:14,2:14). |
ba20 | 3d 20 6f 6e 65 73 28 31 33 2c 31 33 29 3b 0a 50 28 33 3a 31 33 2c 33 3a 31 33 29 20 3d 20 4e 61 | =.ones(13,13);.P(3:13,3:13).=.Na |
ba40 | 4e 2a 6f 6e 65 73 28 31 31 2c 31 31 29 3b 0a 50 28 36 3a 31 30 2c 36 3a 31 30 29 20 3d 20 32 2a | N*ones(11,11);.P(6:10,6:10).=.2* |
ba60 | 6f 6e 65 73 28 35 2c 35 29 3b 0a 50 28 37 3a 39 2c 37 3a 39 29 20 3d 20 31 2a 6f 6e 65 73 28 33 | ones(5,5);.P(7:9,7:9).=.1*ones(3 |
ba80 | 2c 33 29 3b 0a 0a 6f 75 74 31 20 3d 20 5b 5d 3b 20 6f 75 74 32 20 3d 20 5b 5d 3b 20 6f 75 74 33 | ,3);..out1.=.[];.out2.=.[];.out3 |
baa0 | 20 3d 20 5b 5d 3b 20 79 20 3d 20 5b 5d 3b 0a 63 20 3d 20 63 6f 6d 70 75 74 65 72 3b 0a 69 66 20 | .=.[];.y.=.[];.c.=.computer;.if. |
bac0 | 7e 73 74 72 63 6d 70 28 63 28 31 3a 32 29 2c 27 50 43 27 29 20 26 20 7e 73 74 72 63 6d 70 28 63 | ~strcmp(c(1:2),'PC').&.~strcmp(c |
bae0 | 28 31 3a 32 29 2c 27 4d 41 27 29 0a 20 20 20 20 74 70 20 3d 20 67 65 74 28 30 2c 27 54 65 72 6d | (1:2),'MA').....tp.=.get(0,'Term |
bb00 | 69 6e 61 6c 50 72 6f 74 6f 63 6f 6c 27 29 3b 0a 65 6c 73 65 0a 20 20 20 20 74 70 20 3d 20 27 6d | inalProtocol');.else.....tp.=.'m |
bb20 | 69 63 72 6f 27 3b 0a 65 6e 64 0a 0a 69 66 20 7e 73 74 72 63 6d 70 28 74 70 2c 27 6e 6f 6e 65 27 | icro';.end..if.~strcmp(tp,'none' |
bb40 | 29 20 26 20 7e 73 74 72 63 6d 70 28 74 70 2c 27 78 27 29 20 26 20 7e 73 74 72 63 6d 70 28 74 70 | ).&.~strcmp(tp,'x').&.~strcmp(tp |
bb60 | 2c 27 6d 69 63 72 6f 27 29 2c 0a 20 20 20 20 69 66 20 6e 61 72 67 6f 75 74 20 3d 3d 20 31 2c 0a | ,'micro'),.....if.nargout.==.1,. |
bb80 | 20 20 20 20 20 20 20 20 69 66 20 6e 61 72 67 69 6e 20 3d 3d 20 31 2c 0a 20 20 20 20 20 20 20 20 | ........if.nargin.==.1,......... |
bba0 | 20 20 20 20 65 76 61 6c 28 27 6f 75 74 31 20 3d 20 74 72 6d 67 69 6e 70 75 74 28 61 72 67 31 29 | ....eval('out1.=.trmginput(arg1) |
bbc0 | 3b 27 29 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 76 | ;');.........else.............ev |
bbe0 | 61 6c 28 27 6f 75 74 31 20 3d 20 74 72 6d 67 69 6e 70 75 74 3b 27 29 3b 0a 20 20 20 20 20 20 20 | al('out1.=.trmginput;');........ |
bc00 | 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 69 66 20 6e 61 72 67 6f 75 74 20 3d 3d 20 32 20 7c 20 6e | .end.....elseif.nargout.==.2.|.n |
bc20 | 61 72 67 6f 75 74 20 3d 3d 20 30 2c 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 72 67 69 6e 20 3d | argout.==.0,.........if.nargin.= |
bc40 | 3d 20 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 28 27 5b 6f 75 74 31 2c 6f 75 74 | =.1,.............eval('[out1,out |
bc60 | 32 5d 20 3d 20 74 72 6d 67 69 6e 70 75 74 28 61 72 67 31 29 3b 27 29 3b 0a 20 20 20 20 20 20 20 | 2].=.trmginput(arg1);');........ |
bc80 | 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 28 27 5b 6f 75 74 31 2c 6f 75 | .else.............eval('[out1,ou |
bca0 | 74 32 5d 20 3d 20 74 72 6d 67 69 6e 70 75 74 3b 27 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a | t2].=.trmginput;');.........end. |
bcc0 | 20 20 20 20 20 20 20 20 69 66 20 20 6e 61 72 67 6f 75 74 20 3d 3d 20 30 0a 20 20 20 20 20 20 20 | ........if..nargout.==.0........ |
bce0 | 20 20 20 20 20 6f 75 74 31 20 3d 20 5b 20 6f 75 74 31 20 6f 75 74 32 20 5d 3b 0a 20 20 20 20 20 | .....out1.=.[.out1.out2.];...... |
bd00 | 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 69 66 20 6e 61 72 67 6f 75 74 20 3d 3d 20 33 2c 0a | ...end.....elseif.nargout.==.3,. |
bd20 | 20 20 20 20 20 20 20 20 69 66 20 6e 61 72 67 69 6e 20 3d 3d 20 31 2c 0a 20 20 20 20 20 20 20 20 | ........if.nargin.==.1,......... |
bd40 | 20 20 20 20 65 76 61 6c 28 27 5b 6f 75 74 31 2c 6f 75 74 32 2c 6f 75 74 33 5d 20 3d 20 74 72 6d | ....eval('[out1,out2,out3].=.trm |
bd60 | 67 69 6e 70 75 74 28 61 72 67 31 29 3b 27 29 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 | ginput(arg1);');.........else... |
bd80 | 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 28 27 5b 6f 75 74 31 2c 6f 75 74 32 2c 6f 75 74 33 5d | ..........eval('[out1,out2,out3] |
bda0 | 20 3d 20 74 72 6d 67 69 6e 70 75 74 3b 27 29 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 | .=.trmginput;');.........end.... |
bdc0 | 20 65 6e 64 0a 65 6c 73 65 0a 0a 20 20 20 20 66 69 67 20 3d 20 67 63 66 3b 0a 20 20 20 20 66 69 | .end.else......fig.=.gcf;.....fi |
bde0 | 67 75 72 65 28 67 63 66 29 3b 0a 0a 20 20 20 20 69 66 20 6e 61 72 67 69 6e 20 3d 3d 20 30 0a 20 | gure(gcf);......if.nargin.==.0.. |
be00 | 20 20 20 20 20 20 20 68 6f 77 5f 6d 61 6e 79 20 3d 20 2d 31 3b 0a 20 20 20 20 20 20 20 20 62 20 | .......how_many.=.-1;.........b. |
be20 | 3d 20 5b 5d 3b 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 68 6f 77 5f 6d 61 6e 79 20 | =.[];.....else.........how_many. |
be40 | 3d 20 61 72 67 31 3b 0a 20 20 20 20 20 20 20 20 62 20 3d 20 5b 5d 3b 0a 20 20 20 20 20 20 20 20 | =.arg1;.........b.=.[];......... |
be60 | 69 66 20 20 69 73 73 74 72 28 68 6f 77 5f 6d 61 6e 79 29 20 2e 2e 2e 0a 20 20 20 20 20 20 20 20 | if..isstr(how_many)............. |
be80 | 20 20 20 20 7c 20 73 69 7a 65 28 68 6f 77 5f 6d 61 6e 79 2c 31 29 20 7e 3d 20 31 20 7c 20 73 69 | ....|.size(how_many,1).~=.1.|.si |
bea0 | 7a 65 28 68 6f 77 5f 6d 61 6e 79 2c 32 29 20 7e 3d 20 31 20 2e 2e 2e 0a 20 20 20 20 20 20 20 20 | ze(how_many,2).~=.1............. |
bec0 | 20 20 20 20 7c 20 7e 28 66 69 78 28 68 6f 77 5f 6d 61 6e 79 29 20 3d 3d 20 68 6f 77 5f 6d 61 6e | ....|.~(fix(how_many).==.how_man |
bee0 | 79 29 20 2e 2e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 68 6f 77 5f 6d 61 6e 79 20 3c 20 | y).................|.how_many.<. |
bf00 | 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 52 65 71 75 69 72 65 73 20 61 20 | 0.............error('Requires.a. |
bf20 | 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 2e 27 29 0a 20 20 20 20 20 20 20 20 65 6e 64 0a | positive.integer.').........end. |
bf40 | 20 20 20 20 20 20 20 20 69 66 20 68 6f 77 5f 6d 61 6e 79 20 3d 3d 20 30 0a 20 20 20 20 20 20 20 | ........if.how_many.==.0........ |
bf60 | 20 20 20 20 20 70 74 72 5f 66 69 67 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 68 | .....ptr_fig.=.0;.............wh |
bf80 | 69 6c 65 28 70 74 72 5f 66 69 67 20 7e 3d 20 66 69 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ile(ptr_fig.~=.fig)............. |
bfa0 | 20 20 20 20 70 74 72 5f 66 69 67 20 3d 20 67 65 74 28 30 2c 27 50 6f 69 6e 74 65 72 57 69 6e 64 | ....ptr_fig.=.get(0,'PointerWind |
bfc0 | 6f 77 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 | ow');.............end........... |
bfe0 | 20 20 73 63 72 6e 5f 70 74 20 3d 20 67 65 74 28 30 2c 27 50 6f 69 6e 74 65 72 4c 6f 63 61 74 69 | ..scrn_pt.=.get(0,'PointerLocati |
c000 | 6f 6e 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 20 3d 20 67 65 74 28 66 69 67 2c | on');.............loc.=.get(fig, |
c020 | 27 50 6f 73 69 74 69 6f 6e 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 74 20 3d 20 5b 73 | 'Position');.............pt.=.[s |
c040 | 63 72 6e 5f 70 74 28 31 29 20 2d 20 6c 6f 63 28 31 29 2c 20 73 63 72 6e 5f 70 74 28 32 29 20 2d | crn_pt(1).-.loc(1),.scrn_pt(2).- |
c060 | 20 6c 6f 63 28 32 29 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 31 20 3d 20 70 74 28 | .loc(2)];.............out1.=.pt( |
c080 | 31 29 3b 20 79 20 3d 20 70 74 28 32 29 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 69 66 20 68 6f | 1);.y.=.pt(2);.........elseif.ho |
c0a0 | 77 5f 6d 61 6e 79 20 3c 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 41 72 | w_many.<.0.............error('Ar |
c0c0 | 67 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 61 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 | gument.must.be.a.positive.intege |
c0e0 | 72 2e 27 29 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 0a 0a 70 6f 69 6e 74 65 | r.').........end.....end..pointe |
c100 | 72 20 3d 20 67 65 74 28 67 63 66 2c 27 70 6f 69 6e 74 65 72 27 29 3b 0a 0a 73 65 74 28 67 63 66 | r.=.get(gcf,'pointer');..set(gcf |
c120 | 2c 27 50 6f 69 6e 74 65 72 27 2c 27 63 75 73 74 6f 6d 27 2c 27 50 6f 69 6e 74 65 72 53 68 61 70 | ,'Pointer','custom','PointerShap |
c140 | 65 43 44 61 74 61 27 2c 50 2c 27 50 6f 69 6e 74 65 72 53 68 61 70 65 48 6f 74 53 70 6f 74 27 2c | eCData',P,'PointerShapeHotSpot', |
c160 | 5b 38 2c 38 5d 29 3b 0a 25 73 65 74 28 67 63 66 2c 27 70 6f 69 6e 74 65 72 27 2c 27 63 72 6f 73 | [8,8]);.%set(gcf,'pointer','cros |
c180 | 73 68 61 69 72 27 29 3b 0a 20 20 20 20 66 69 67 5f 75 6e 69 74 73 20 3d 20 67 65 74 28 66 69 67 | shair');.....fig_units.=.get(fig |
c1a0 | 2c 27 75 6e 69 74 73 27 29 3b 0a 20 20 20 20 63 68 61 72 20 3d 20 30 3b 0a 0a 20 20 20 20 77 68 | ,'units');.....char.=.0;......wh |
c1c0 | 69 6c 65 20 68 6f 77 5f 6d 61 6e 79 20 7e 3d 20 30 0a 20 20 20 20 20 20 20 20 25 20 55 73 65 20 | ile.how_many.~=.0.........%.Use. |
c1e0 | 6e 6f 2d 73 69 64 65 20 65 66 66 65 63 74 20 57 41 49 54 46 4f 52 42 55 54 54 4f 4e 50 52 45 53 | no-side.effect.WAITFORBUTTONPRES |
c200 | 53 0a 20 20 20 20 20 20 20 20 77 61 73 65 72 72 20 3d 20 30 3b 0a 20 20 20 20 20 20 20 20 65 76 | S.........waserr.=.0;.........ev |
c220 | 61 6c 28 27 6b 65 79 64 6f 77 6e 20 3d 20 77 66 62 70 3b 27 2c 20 27 77 61 73 65 72 72 20 3d 20 | al('keydown.=.wfbp;',.'waserr.=. |
c240 | 31 3b 27 29 3b 0a 20 20 20 20 20 20 20 20 69 66 28 77 61 73 65 72 72 20 3d 3d 20 31 29 0a 20 20 | 1;');.........if(waserr.==.1)... |
c260 | 20 20 20 20 69 66 28 69 73 68 61 6e 64 6c 65 28 66 69 67 29 29 0a 20 20 20 20 20 20 20 20 73 65 | ....if(ishandle(fig)).........se |
c280 | 74 28 66 69 67 2c 27 70 6f 69 6e 74 65 72 27 2c 70 6f 69 6e 74 65 72 2c 27 75 6e 69 74 73 27 2c | t(fig,'pointer',pointer,'units', |
c2a0 | 66 69 67 5f 75 6e 69 74 73 29 3b 0a 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 49 6e 74 65 72 | fig_units);.........error('Inter |
c2c0 | 72 75 70 74 65 64 27 29 3b 0a 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 65 72 72 | rupted');.......else.........err |
c2e0 | 6f 72 28 27 49 6e 74 65 72 72 75 70 74 65 64 20 62 79 20 66 69 67 75 72 65 20 64 65 6c 65 74 69 | or('Interrupted.by.figure.deleti |
c300 | 6f 6e 27 29 3b 0a 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 | on');.......end.........end..... |
c320 | 20 20 0a 20 20 20 20 20 20 20 20 70 74 72 5f 66 69 67 20 3d 20 67 65 74 28 30 2c 27 43 75 72 72 | ...........ptr_fig.=.get(0,'Curr |
c340 | 65 6e 74 46 69 67 75 72 65 27 29 3b 0a 20 20 20 20 20 20 20 20 69 66 28 70 74 72 5f 66 69 67 20 | entFigure');.........if(ptr_fig. |
c360 | 3d 3d 20 66 69 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6b 65 79 64 6f 77 6e 0a 20 | ==.fig).............if.keydown.. |
c380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 61 72 20 3d 20 67 65 74 28 66 69 67 2c 20 27 | ...............char.=.get(fig,.' |
c3a0 | 43 75 72 72 65 6e 74 43 68 61 72 61 63 74 65 72 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | CurrentCharacter');............. |
c3c0 | 20 20 20 20 62 75 74 74 6f 6e 20 3d 20 61 62 73 28 67 65 74 28 66 69 67 2c 20 27 43 75 72 72 65 | ....button.=.abs(get(fig,.'Curre |
c3e0 | 6e 74 43 68 61 72 61 63 74 65 72 27 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ntCharacter'));................. |
c400 | 73 63 72 6e 5f 70 74 20 3d 20 67 65 74 28 30 2c 20 27 50 6f 69 6e 74 65 72 4c 6f 63 61 74 69 6f | scrn_pt.=.get(0,.'PointerLocatio |
c420 | 6e 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 28 66 69 67 2c 27 75 6e | n');.................set(fig,'un |
c440 | 69 74 73 27 2c 27 70 69 78 65 6c 73 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c | its','pixels').................l |
c460 | 6f 63 20 3d 20 67 65 74 28 66 69 67 2c 20 27 50 6f 73 69 74 69 6f 6e 27 29 3b 0a 20 20 20 20 20 | oc.=.get(fig,.'Position');...... |
c480 | 20 20 20 20 20 20 20 20 20 20 20 70 74 20 3d 20 5b 73 63 72 6e 5f 70 74 28 31 29 20 2d 20 6c 6f | ...........pt.=.[scrn_pt(1).-.lo |
c4a0 | 63 28 31 29 2c 20 73 63 72 6e 5f 70 74 28 32 29 20 2d 20 6c 6f 63 28 32 29 5d 3b 0a 20 20 20 20 | c(1),.scrn_pt(2).-.loc(2)];..... |
c4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 28 66 69 67 2c 27 43 75 72 72 65 6e 74 50 6f 69 6e | ............set(fig,'CurrentPoin |
c4e0 | 74 27 2c 70 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 | t',pt);.............else........ |
c500 | 20 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 20 3d 20 67 65 74 28 66 69 67 2c 20 27 53 65 6c 65 | .........button.=.get(fig,.'Sele |
c520 | 63 74 69 6f 6e 54 79 70 65 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | ctionType');.................if. |
c540 | 73 74 72 63 6d 70 28 62 75 74 74 6f 6e 2c 27 6f 70 65 6e 27 29 0a 20 20 20 20 20 20 20 20 20 20 | strcmp(button,'open')........... |
c560 | 20 20 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 20 3d 20 62 28 6c 65 6e 67 74 68 28 62 29 29 3b | ..........button.=.b(length(b)); |
c580 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 69 66 20 73 74 72 63 6d 70 28 62 | .................elseif.strcmp(b |
c5a0 | 75 74 74 6f 6e 2c 27 6e 6f 72 6d 61 6c 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | utton,'normal')................. |
c5c0 | 20 20 20 20 62 75 74 74 6f 6e 20 3d 20 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....button.=.1;................. |
c5e0 | 65 6c 73 65 69 66 20 73 74 72 63 6d 70 28 62 75 74 74 6f 6e 2c 27 65 78 74 65 6e 64 27 29 0a 20 | elseif.strcmp(button,'extend').. |
c600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 74 74 6f 6e 20 3d 20 32 3b 0a 20 | ...................button.=.2;.. |
c620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 69 66 20 73 74 72 63 6d 70 28 62 75 74 | ...............elseif.strcmp(but |
c640 | 74 6f 6e 2c 27 61 6c 74 27 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 | ton,'alt').....................b |
c660 | 75 74 74 6f 6e 20 3d 20 33 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a | utton.=.3;.................else. |
c680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 49 6e 76 61 6c | ....................error('Inval |
c6a0 | 69 64 20 6d 6f 75 73 65 20 73 65 6c 65 63 74 69 6f 6e 2e 27 29 0a 20 20 20 20 20 20 20 20 20 20 | id.mouse.selection.')........... |
c6c0 | 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 | ......end.............end....... |
c6e0 | 20 20 20 20 20 20 70 74 20 3d 20 67 65 74 28 67 63 61 2c 20 27 43 75 72 72 65 6e 74 50 6f 69 6e | ......pt.=.get(gca,.'CurrentPoin |
c700 | 74 27 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 68 6f 77 5f 6d 61 6e 79 20 3d 20 68 6f 77 | t');..............how_many.=.how |
c720 | 5f 6d 61 6e 79 20 2d 20 31 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 63 68 61 72 20 | _many.-.1;..............if(char. |
c740 | 3d 3d 20 31 33 29 20 25 20 26 20 68 6f 77 5f 6d 61 6e 79 20 7e 3d 20 30 29 0a 20 20 20 20 20 20 | ==.13).%.&.how_many.~=.0)....... |
c760 | 20 20 20 20 20 20 20 20 20 20 25 20 69 66 20 74 68 65 20 72 65 74 75 72 6e 20 6b 65 79 20 77 61 | ..........%.if.the.return.key.wa |
c780 | 73 20 70 72 65 73 73 65 64 2c 20 63 68 61 72 20 77 69 6c 6c 20 3d 3d 20 31 33 2c 0a 20 20 20 20 | s.pressed,.char.will.==.13,..... |
c7a0 | 20 20 20 20 20 20 20 20 20 20 20 20 25 20 61 6e 64 20 74 68 61 74 27 73 20 6f 75 72 20 73 69 67 | ............%.and.that's.our.sig |
c7c0 | 6e 61 6c 20 74 6f 20 62 72 65 61 6b 20 6f 75 74 20 6f 66 20 68 65 72 65 20 77 68 65 74 68 65 72 | nal.to.break.out.of.here.whether |
c7e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25 20 6f 72 20 6e 6f 74 20 77 65 20 68 61 76 | .................%.or.not.we.hav |
c800 | 65 20 63 6f 6c 6c 65 63 74 65 64 20 61 6c 6c 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 64 61 | e.collected.all.the.requested.da |
c820 | 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25 20 70 6f 69 6e 74 73 2e 20 20 0a 20 | ta.................%.points..... |
c840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25 20 49 66 20 74 68 69 73 20 77 61 73 20 61 6e 20 | ...............%.If.this.was.an. |
c860 | 65 61 72 6c 79 20 62 72 65 61 6b 6f 75 74 2c 20 64 6f 6e 27 74 20 69 6e 63 6c 75 64 65 0a 20 20 | early.breakout,.don't.include... |
c880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25 20 74 68 65 20 3c 52 65 74 75 72 6e 3e 20 6b 65 79 | ..............%.the.<Return>.key |
c8a0 | 20 69 6e 66 6f 20 69 6e 20 74 68 65 20 72 65 74 75 72 6e 20 61 72 72 61 79 73 2e 0a 20 20 20 20 | .info.in.the.return.arrays...... |
c8c0 | 20 20 20 20 20 20 20 20 20 20 20 20 25 20 57 65 20 77 69 6c 6c 20 6e 6f 20 6c 6f 6e 67 65 72 20 | ............%.We.will.no.longer. |
c8e0 | 63 6f 75 6e 74 20 69 74 20 69 66 20 69 74 27 73 20 74 68 65 20 6c 61 73 74 20 69 6e 70 75 74 2e | count.it.if.it's.the.last.input. |
c900 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 | .................break;......... |
c920 | 20 20 20 20 65 6e 64 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 31 20 3d 20 5b 6f 75 74 | ....end..............out1.=.[out |
c940 | 31 3b 70 74 28 31 2c 31 29 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 79 20 3d 20 5b 79 3b 70 | 1;pt(1,1)];.............y.=.[y;p |
c960 | 74 28 31 2c 32 29 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 20 3d 20 5b 62 3b 62 75 74 74 | t(1,2)];.............b.=.[b;butt |
c980 | 6f 6e 5d 3b 0a 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6e 64 0a 0a 20 20 20 20 73 65 | on];.........end.....end......se |
c9a0 | 74 28 66 69 67 2c 27 70 6f 69 6e 74 65 72 27 2c 70 6f 69 6e 74 65 72 2c 27 75 6e 69 74 73 27 2c | t(fig,'pointer',pointer,'units', |
c9c0 | 66 69 67 5f 75 6e 69 74 73 29 3b 0a 0a 20 20 20 20 69 66 20 6e 61 72 67 6f 75 74 20 3e 20 31 0a | fig_units);......if.nargout.>.1. |
c9e0 | 20 20 20 20 20 20 20 20 6f 75 74 32 20 3d 20 79 3b 0a 20 20 20 20 20 20 20 20 69 66 20 6e 61 72 | ........out2.=.y;.........if.nar |
ca00 | 67 6f 75 74 20 3e 20 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 33 20 3d 20 62 3b 0a 20 | gout.>.2.............out3.=.b;.. |
ca20 | 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 6f 75 74 31 | .......end.....else.........out1 |
ca40 | 20 3d 20 5b 6f 75 74 31 20 79 5d 3b 0a 20 20 20 20 65 6e 64 0a 0a 65 6e 64 0a 0a 25 25 25 25 25 | .=.[out1.y];.....end..end..%%%%% |
ca60 | 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
ca80 | 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 0a 66 75 6e 63 74 69 6f 6e 20 6b 65 79 20 | %%%%%%%%%%%%%%%%%%.function.key. |
caa0 | 3d 20 77 66 62 70 0a 25 57 46 42 50 20 20 20 52 65 70 6c 61 63 65 6d 65 6e 74 20 66 6f 72 20 57 | =.wfbp.%WFBP...Replacement.for.W |
cac0 | 41 49 54 46 4f 52 42 55 54 54 4f 4e 50 52 45 53 53 20 74 68 61 74 20 68 61 73 20 6e 6f 20 73 69 | AITFORBUTTONPRESS.that.has.no.si |
cae0 | 64 65 20 65 66 66 65 63 74 73 2e 0a 0a 25 20 52 65 6d 6f 76 65 20 66 69 67 75 72 65 20 62 75 74 | de.effects...%.Remove.figure.but |
cb00 | 74 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 0a 66 70 72 6f 70 73 20 3d 20 7b 27 77 69 6e 64 6f 77 62 | ton.functions.fprops.=.{'windowb |
cb20 | 75 74 74 6f 6e 75 70 66 63 6e 27 2c 27 62 75 74 74 6f 6e 64 6f 77 6e 66 63 6e 27 2c 20 2e 2e 2e | uttonupfcn','buttondownfcn',.... |
cb40 | 0a 20 20 20 20 20 20 20 20 20 20 27 77 69 6e 64 6f 77 62 75 74 74 6f 6e 64 6f 77 6e 66 63 6e 27 | ...........'windowbuttondownfcn' |
cb60 | 2c 27 77 69 6e 64 6f 77 62 75 74 74 6f 6e 6d 6f 74 69 6f 6e 66 63 6e 27 7d 3b 0a 66 69 67 20 3d | ,'windowbuttonmotionfcn'};.fig.= |
cb80 | 20 67 63 66 3b 0a 66 76 61 6c 73 20 3d 20 67 65 74 28 66 69 67 2c 66 70 72 6f 70 73 29 3b 0a 73 | .gcf;.fvals.=.get(fig,fprops);.s |
cba0 | 65 74 28 66 69 67 2c 66 70 72 6f 70 73 2c 7b 27 27 2c 27 27 2c 27 27 2c 27 27 7d 29 0a 0a 25 20 | et(fig,fprops,{'','','',''})..%. |
cbc0 | 52 65 6d 6f 76 65 20 61 6c 6c 20 6f 74 68 65 72 20 62 75 74 74 6f 6e 64 6f 77 6e 20 66 75 6e 63 | Remove.all.other.buttondown.func |
cbe0 | 74 69 6f 6e 73 0a 61 78 20 3d 20 66 69 6e 64 6f 62 6a 28 66 69 67 2c 27 74 79 70 65 27 2c 27 61 | tions.ax.=.findobj(fig,'type','a |
cc00 | 78 65 73 27 29 3b 0a 69 66 20 69 73 65 6d 70 74 79 28 61 78 29 0a 20 20 20 20 63 68 20 3d 20 7b | xes');.if.isempty(ax).....ch.=.{ |
cc20 | 7d 3b 0a 65 6c 73 65 0a 20 20 20 20 63 68 20 3d 20 67 65 74 28 61 78 2c 7b 27 43 68 69 6c 64 72 | };.else.....ch.=.get(ax,{'Childr |
cc40 | 65 6e 27 7d 29 3b 0a 65 6e 64 0a 66 6f 72 20 69 3d 31 3a 6c 65 6e 67 74 68 28 63 68 29 2c 0a 20 | en'});.end.for.i=1:length(ch),.. |
cc60 | 20 20 20 63 68 7b 69 7d 20 3d 20 63 68 7b 69 7d 28 3a 29 27 3b 0a 65 6e 64 0a 68 20 3d 20 5b 61 | ...ch{i}.=.ch{i}(:)';.end.h.=.[a |
cc80 | 78 28 3a 29 27 2c 63 68 7b 3a 7d 5d 3b 0a 76 61 6c 73 20 3d 20 67 65 74 28 68 2c 7b 27 62 75 74 | x(:)',ch{:}];.vals.=.get(h,{'but |
cca0 | 74 6f 6e 64 6f 77 6e 66 63 6e 27 7d 29 3b 0a 6d 74 20 3d 20 72 65 70 6d 61 74 28 7b 27 27 7d 2c | tondownfcn'});.mt.=.repmat({''}, |
ccc0 | 73 69 7a 65 28 76 61 6c 73 29 29 3b 0a 73 65 74 28 68 2c 7b 27 62 75 74 74 6f 6e 64 6f 77 6e 66 | size(vals));.set(h,{'buttondownf |
cce0 | 63 6e 27 7d 2c 6d 74 29 3b 0a 0a 25 20 4e 6f 77 20 77 61 69 74 20 66 6f 72 20 74 68 61 74 20 62 | cn'},mt);..%.Now.wait.for.that.b |
cd00 | 75 74 74 6f 6e 70 72 65 73 73 2c 20 61 6e 64 20 63 68 65 63 6b 20 66 6f 72 20 65 72 72 6f 72 20 | uttonpress,.and.check.for.error. |
cd20 | 63 6f 6e 64 69 74 69 6f 6e 73 0a 77 61 73 65 72 72 20 3d 20 30 3b 0a 65 76 61 6c 28 5b 27 69 66 | conditions.waserr.=.0;.eval(['if |
cd40 | 20 6e 61 72 67 6f 75 74 3d 3d 30 2c 27 2c 20 2e 2e 2e 0a 20 20 20 20 20 20 27 20 20 20 77 61 69 | .nargout==0,',...........'...wai |
cd60 | 74 66 6f 72 62 75 74 74 6f 6e 70 72 65 73 73 2c 27 2c 20 2e 2e 2e 0a 20 20 20 20 20 20 27 65 6c | tforbuttonpress,',...........'el |
cd80 | 73 65 2c 27 2c 20 2e 2e 2e 0a 20 20 20 20 20 20 27 20 20 20 6b 65 79 64 6f 77 6e 20 3d 20 77 61 | se,',...........'...keydown.=.wa |
cda0 | 69 74 66 6f 72 62 75 74 74 6f 6e 70 72 65 73 73 3b 27 2c 2e 2e 2e 0a 20 20 20 20 20 20 27 65 6e | itforbuttonpress;',..........'en |
cdc0 | 64 27 20 5d 2c 20 27 77 61 73 65 72 72 20 3d 20 31 3b 27 29 3b 0a 0a 25 20 50 75 74 20 65 76 65 | d'.],.'waserr.=.1;');..%.Put.eve |
cde0 | 72 79 74 68 69 6e 67 20 62 61 63 6b 0a 69 66 28 69 73 68 61 6e 64 6c 65 28 66 69 67 29 29 0a 20 | rything.back.if(ishandle(fig)).. |
ce00 | 20 73 65 74 28 66 69 67 2c 66 70 72 6f 70 73 2c 66 76 61 6c 73 29 0a 20 20 73 65 74 28 68 2c 7b | .set(fig,fprops,fvals)...set(h,{ |
ce20 | 27 62 75 74 74 6f 6e 64 6f 77 6e 66 63 6e 27 7d 2c 76 61 6c 73 29 0a 65 6e 64 0a 0a 69 66 28 77 | 'buttondownfcn'},vals).end..if(w |
ce40 | 61 73 65 72 72 20 3d 3d 20 31 29 0a 20 20 65 72 72 6f 72 28 27 49 6e 74 65 72 72 75 70 74 65 64 | aserr.==.1)...error('Interrupted |
ce60 | 27 29 3b 0a 65 6e 64 0a 0a 69 66 20 6e 61 72 67 6f 75 74 3e 30 2c 20 6b 65 79 20 3d 20 6b 65 79 | ');.end..if.nargout>0,.key.=.key |
ce80 | 64 6f 77 6e 3b 20 65 6e 64 0a 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 | down;.end.%%%%%%%%%%%%%%%%%%%%%% |
cea0 | 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
cec0 | 25 25 25 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | %%%............................. |
cee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
cf00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
cf20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
cf40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
cf60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
cf80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
cfa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
cfc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
cfe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d000 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 67 6f 5f 63 61 6c 69 62 5f 6f 70 74 69 6d 2e 6d 00 00 | TOOLBOX_calib/go_calib_optim.m.. |
d020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d060 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
d080 | 20 20 31 31 36 34 36 20 20 36 37 36 33 30 37 30 32 32 36 20 20 31 31 35 37 37 00 20 00 00 00 00 | ..11646..6763070226..11577...... |
d0a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d0c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d0e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
d200 | 25 20 53 69 6d 70 6c 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 67 6f 5f 63 61 6c 69 62 | %.Simplified.version.of.go_calib |
d220 | 2e 6d 0a 0a 0a 69 66 20 7e 65 78 69 73 74 28 27 78 5f 31 27 29 2c 0a 20 20 20 63 6c 69 63 6b 5f | .m...if.~exist('x_1'),....click_ |
d240 | 63 61 6c 69 62 3b 0a 65 6e 64 3b 0a 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 5c 6e 4d 61 69 6e 20 | calib;.end;...fprintf(1,'\nMain. |
d260 | 63 61 6c 69 62 72 61 74 69 6f 6e 20 70 72 6f 63 65 64 75 72 65 5c 6e 27 29 3b 0a 0a 25 20 69 6e | calibration.procedure\n');..%.in |
d280 | 69 74 69 61 6c 20 67 75 65 73 73 20 66 6f 72 20 70 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 20 | itial.guess.for.principal.point. |
d2a0 | 61 6e 64 20 64 69 73 74 6f 72 74 69 6f 6e 3a 0a 63 5f 69 6e 69 74 20 3d 20 5b 6e 78 3b 6e 79 5d | and.distortion:.c_init.=.[nx;ny] |
d2c0 | 2f 32 20 2d 20 30 2e 35 3b 20 25 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 74 20 74 68 65 20 63 65 | /2.-.0.5;.%.initialize.at.the.ce |
d2e0 | 6e 74 65 72 20 6f 66 20 74 68 65 20 69 6d 61 67 65 0a 6b 5f 69 6e 69 74 20 3d 20 5b 30 3b 30 3b | nter.of.the.image.k_init.=.[0;0; |
d300 | 30 3b 30 5d 3b 20 25 20 69 6e 69 74 69 61 6c 69 7a 65 20 74 6f 20 7a 65 72 6f 20 28 6e 6f 20 64 | 0;0];.%.initialize.to.zero.(no.d |
d320 | 69 73 74 6f 72 74 69 6f 6e 29 0a 0a 0a 25 20 43 6f 6d 70 75 74 65 20 65 78 70 6c 69 63 69 74 65 | istortion)...%.Compute.explicite |
d340 | 6c 79 20 74 68 65 20 66 6f 63 61 6c 20 6c 65 6e 74 67 68 20 75 73 69 6e 67 20 61 6c 6c 20 74 68 | ly.the.focal.lentgh.using.all.th |
d360 | 65 20 28 6d 75 74 75 61 6c 6c 79 20 6f 72 74 68 6f 67 6f 6e 61 6c 29 20 76 61 6e 69 73 68 69 6e | e.(mutually.orthogonal).vanishin |
d380 | 67 20 70 6f 69 6e 74 73 0a 25 20 6e 6f 74 65 3a 20 54 68 65 20 76 61 6e 69 68 69 6e 67 20 70 6f | g.points.%.note:.The.vanihing.po |
d3a0 | 69 6e 74 73 20 61 72 65 20 68 69 64 64 65 6e 20 69 6e 20 74 68 65 20 70 6c 61 6e 61 72 20 63 6f | ints.are.hidden.in.the.planar.co |
d3c0 | 6c 6c 69 6e 65 61 74 69 6f 6e 73 20 48 5f 6b 6b 0a 0a 41 20 3d 20 5b 5d 3b 0a 62 20 3d 20 5b 5d | llineations.H_kk..A.=.[];.b.=.[] |
d3e0 | 3b 0a 0a 25 20 6d 61 74 72 69 78 20 74 68 61 74 20 73 75 62 74 72 61 63 74 20 74 68 65 20 70 72 | ;..%.matrix.that.subtract.the.pr |
d400 | 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 3a 0a 53 75 62 5f 63 63 20 3d 20 5b 31 20 30 20 2d 63 5f | incipal.point:.Sub_cc.=.[1.0.-c_ |
d420 | 69 6e 69 74 28 31 29 3b 30 20 31 20 2d 63 5f 69 6e 69 74 28 32 29 3b 30 20 30 20 31 5d 3b 0a 0a | init(1);0.1.-c_init(2);0.0.1];.. |
d440 | 48 5f 6c 69 73 74 20 3d 20 63 65 6c 6c 28 31 2c 6e 5f 69 6d 61 29 3b 0a 0a 66 6f 72 20 6b 6b 3d | H_list.=.cell(1,n_ima);..for.kk= |
d460 | 31 3a 6e 5f 69 6d 61 2c 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 48 6b 6b 20 3d 20 48 5f 27 | 1:n_ima,........eval(['Hkk.=.H_' |
d480 | 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 3b 27 5d 29 3b 0a 20 20 20 0a 20 20 20 48 6b 6b 20 3d | .num2str(kk).';']);........Hkk.= |
d4a0 | 20 53 75 62 5f 63 63 20 2a 20 48 6b 6b 3b 0a 20 20 20 20 20 20 0a 20 20 20 48 5f 6c 69 73 74 7b | .Sub_cc.*.Hkk;...........H_list{ |
d4c0 | 6b 6b 7d 20 3d 20 48 6b 6b 3b 0a 20 20 20 0a 20 20 20 25 20 45 78 74 72 61 63 74 20 76 61 6e 69 | kk}.=.Hkk;........%.Extract.vani |
d4e0 | 73 68 69 6e 67 20 70 6f 69 6e 74 73 20 28 64 69 72 65 63 74 20 61 6e 64 20 64 69 61 67 6f 6e 61 | shing.points.(direct.and.diagona |
d500 | 6c 73 29 3a 0a 20 20 20 0a 20 20 20 56 5f 68 6f 72 69 5f 70 69 78 20 3d 20 48 6b 6b 28 3a 2c 31 | ls):........V_hori_pix.=.Hkk(:,1 |
d520 | 29 3b 0a 20 20 20 56 5f 76 65 72 74 5f 70 69 78 20 3d 20 48 6b 6b 28 3a 2c 32 29 3b 0a 20 20 20 | );....V_vert_pix.=.Hkk(:,2);.... |
d540 | 56 5f 64 69 61 67 31 5f 70 69 78 20 3d 20 28 48 6b 6b 28 3a 2c 31 29 2b 48 6b 6b 28 3a 2c 32 29 | V_diag1_pix.=.(Hkk(:,1)+Hkk(:,2) |
d560 | 29 2f 32 3b 0a 20 20 20 56 5f 64 69 61 67 32 5f 70 69 78 20 3d 20 28 48 6b 6b 28 3a 2c 31 29 2d | )/2;....V_diag2_pix.=.(Hkk(:,1)- |
d580 | 48 6b 6b 28 3a 2c 32 29 29 2f 32 3b 0a 20 20 20 0a 20 20 20 56 5f 68 6f 72 69 5f 70 69 78 20 3d | Hkk(:,2))/2;........V_hori_pix.= |
d5a0 | 20 56 5f 68 6f 72 69 5f 70 69 78 2f 6e 6f 72 6d 28 56 5f 68 6f 72 69 5f 70 69 78 29 3b 0a 20 20 | .V_hori_pix/norm(V_hori_pix);... |
d5c0 | 20 56 5f 76 65 72 74 5f 70 69 78 20 3d 20 56 5f 76 65 72 74 5f 70 69 78 2f 6e 6f 72 6d 28 56 5f | .V_vert_pix.=.V_vert_pix/norm(V_ |
d5e0 | 76 65 72 74 5f 70 69 78 29 3b 0a 20 20 20 56 5f 64 69 61 67 31 5f 70 69 78 20 3d 20 56 5f 64 69 | vert_pix);....V_diag1_pix.=.V_di |
d600 | 61 67 31 5f 70 69 78 2f 6e 6f 72 6d 28 56 5f 64 69 61 67 31 5f 70 69 78 29 3b 0a 20 20 20 56 5f | ag1_pix/norm(V_diag1_pix);....V_ |
d620 | 64 69 61 67 32 5f 70 69 78 20 3d 20 56 5f 64 69 61 67 32 5f 70 69 78 2f 6e 6f 72 6d 28 56 5f 64 | diag2_pix.=.V_diag2_pix/norm(V_d |
d640 | 69 61 67 32 5f 70 69 78 29 3b 0a 20 20 20 0a 20 20 20 61 31 20 3d 20 56 5f 68 6f 72 69 5f 70 69 | iag2_pix);........a1.=.V_hori_pi |
d660 | 78 28 31 29 3b 0a 20 20 20 62 31 20 3d 20 56 5f 68 6f 72 69 5f 70 69 78 28 32 29 3b 0a 20 20 20 | x(1);....b1.=.V_hori_pix(2);.... |
d680 | 63 31 20 3d 20 56 5f 68 6f 72 69 5f 70 69 78 28 33 29 3b 0a 20 20 20 0a 20 20 20 61 32 20 3d 20 | c1.=.V_hori_pix(3);........a2.=. |
d6a0 | 56 5f 76 65 72 74 5f 70 69 78 28 31 29 3b 0a 20 20 20 62 32 20 3d 20 56 5f 76 65 72 74 5f 70 69 | V_vert_pix(1);....b2.=.V_vert_pi |
d6c0 | 78 28 32 29 3b 0a 20 20 20 63 32 20 3d 20 56 5f 76 65 72 74 5f 70 69 78 28 33 29 3b 0a 20 20 20 | x(2);....c2.=.V_vert_pix(3);.... |
d6e0 | 0a 20 20 20 61 33 20 3d 20 56 5f 64 69 61 67 31 5f 70 69 78 28 31 29 3b 0a 20 20 20 62 33 20 3d | ....a3.=.V_diag1_pix(1);....b3.= |
d700 | 20 56 5f 64 69 61 67 31 5f 70 69 78 28 32 29 3b 0a 20 20 20 63 33 20 3d 20 56 5f 64 69 61 67 31 | .V_diag1_pix(2);....c3.=.V_diag1 |
d720 | 5f 70 69 78 28 33 29 3b 0a 20 20 20 0a 20 20 20 61 34 20 3d 20 56 5f 64 69 61 67 32 5f 70 69 78 | _pix(3);........a4.=.V_diag2_pix |
d740 | 28 31 29 3b 0a 20 20 20 62 34 20 3d 20 56 5f 64 69 61 67 32 5f 70 69 78 28 32 29 3b 0a 20 20 20 | (1);....b4.=.V_diag2_pix(2);.... |
d760 | 63 34 20 3d 20 56 5f 64 69 61 67 32 5f 70 69 78 28 33 29 3b 0a 20 0a 20 0a 20 20 20 41 5f 6b 6b | c4.=.V_diag2_pix(3);........A_kk |
d780 | 20 3d 20 5b 61 31 2a 61 32 20 20 62 31 2a 62 32 3b 0a 09 20 20 20 20 20 20 20 20 61 33 2a 61 34 | .=.[a1*a2..b1*b2;..........a3*a4 |
d7a0 | 20 20 62 33 2a 62 34 5d 3b 0a 20 20 20 0a 20 20 20 62 5f 6b 6b 20 3d 20 2d 5b 63 31 2a 63 32 3b | ..b3*b4];........b_kk.=.-[c1*c2; |
d7c0 | 63 33 2a 63 34 5d 3b 0a 20 20 20 0a 0a 20 20 20 41 20 3d 20 5b 41 3b 41 5f 6b 6b 5d 3b 0a 20 20 | c3*c4];.........A.=.[A;A_kk];... |
d7e0 | 20 62 20 3d 20 5b 62 3b 62 5f 6b 6b 5d 3b 0a 20 20 20 0a 65 6e 64 3b 0a 0a 25 20 75 73 65 20 61 | .b.=.[b;b_kk];.....end;..%.use.a |
d800 | 6c 6c 20 74 68 65 20 76 61 6e 69 73 68 69 6e 67 20 70 6f 69 6e 74 73 20 74 6f 20 65 73 74 69 6d | ll.the.vanishing.points.to.estim |
d820 | 61 74 65 20 66 6f 63 61 6c 20 6c 65 6e 67 74 68 3a 0a 0a 66 5f 69 6e 69 74 20 3d 20 73 71 72 74 | ate.focal.length:..f_init.=.sqrt |
d840 | 28 61 62 73 28 31 2e 2f 28 69 6e 76 28 41 27 2a 41 29 2a 41 27 2a 62 29 29 29 3b 20 25 20 69 66 | (abs(1./(inv(A'*A)*A'*b)));.%.if |
d860 | 20 75 73 69 6e 67 20 61 20 74 77 6f 2d 66 6f 63 61 6c 20 6d 6f 64 65 6c 20 66 6f 72 20 69 6e 69 | .using.a.two-focal.model.for.ini |
d880 | 74 69 61 6c 20 67 75 65 73 73 0a 0a 25 66 5f 69 6e 69 74 20 3d 20 73 71 72 74 28 62 27 2a 28 73 | tial.guess..%f_init.=.sqrt(b'*(s |
d8a0 | 75 6d 28 41 27 29 27 29 20 2f 20 28 62 27 2a 62 29 29 20 2a 20 6f 6e 65 73 28 32 2c 31 29 3b 20 | um(A')')./.(b'*b)).*.ones(2,1);. |
d8c0 | 25 20 69 66 20 73 69 6e 67 6c 65 20 66 6f 63 61 6c 20 6c 65 6e 67 74 68 20 6d 6f 64 65 6c 20 69 | %.if.single.focal.length.model.i |
d8e0 | 73 20 75 73 65 64 0a 0a 0a 25 20 47 6c 6f 62 61 6c 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 6d 61 | s.used...%.Global.calibration.ma |
d900 | 74 72 69 78 20 28 69 6e 69 74 69 61 6c 20 67 75 65 73 73 29 3a 0a 20 20 20 09 0a 4b 4b 20 3d 20 | trix.(initial.guess):......KK.=. |
d920 | 5b 66 5f 69 6e 69 74 28 31 29 20 30 20 63 5f 69 6e 69 74 28 31 29 3b 30 20 66 5f 69 6e 69 74 28 | [f_init(1).0.c_init(1);0.f_init( |
d940 | 32 29 20 63 5f 69 6e 69 74 28 32 29 3b 20 30 20 30 20 31 5d 3b 0a 69 6e 76 5f 4b 4b 20 3d 20 69 | 2).c_init(2);.0.0.1];.inv_KK.=.i |
d960 | 6e 76 28 4b 4b 29 3b 0a 0a 09 0a 25 20 43 6f 6d 70 75 74 69 6e 67 20 6f 66 20 74 68 65 20 65 78 | nv(KK);....%.Computing.of.the.ex |
d980 | 74 72 69 6e 73 69 63 20 70 61 72 61 6d 65 74 65 72 73 20 28 66 72 6f 6d 20 74 68 65 20 63 6f 6c | trinsic.parameters.(from.the.col |
d9a0 | 6c 69 6e 65 61 74 69 6f 6e 73 29 0a 0a 66 6f 72 20 6b 6b 20 3d 20 31 3a 6e 5f 69 6d 61 2c 0a 20 | lineations)..for.kk.=.1:n_ima,.. |
d9c0 | 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 48 6b 6b 20 3d 20 48 5f 27 20 6e 75 6d 32 73 74 72 28 6b | ......eval(['Hkk.=.H_'.num2str(k |
d9e0 | 6b 29 20 27 3b 27 5d 29 3b 0a 20 20 20 0a 20 20 20 48 32 20 3d 20 69 6e 76 5f 4b 4b 2a 48 6b 6b | k).';']);........H2.=.inv_KK*Hkk |
da00 | 3b 0a 20 20 20 20 20 20 0a 20 20 20 73 63 20 3d 20 6d 65 61 6e 28 5b 6e 6f 72 6d 28 48 32 28 3a | ;...........sc.=.mean([norm(H2(: |
da20 | 2c 31 29 29 3b 6e 6f 72 6d 28 48 32 28 3a 2c 32 29 29 5d 29 3b 0a 20 20 20 0a 20 09 48 32 20 3d | ,1));norm(H2(:,2))]);.......H2.= |
da40 | 20 48 32 2f 73 63 3b 0a 20 20 20 0a 20 20 09 6f 6d 63 6b 6b 20 3d 20 72 6f 64 72 69 67 75 65 73 | .H2/sc;........omckk.=.rodrigues |
da60 | 28 5b 48 32 28 3a 2c 31 3a 32 29 20 63 72 6f 73 73 28 48 32 28 3a 2c 31 29 2c 48 32 28 3a 2c 32 | ([H2(:,1:2).cross(H2(:,1),H2(:,2 |
da80 | 29 29 5d 29 3b 0a 20 20 09 54 63 6b 6b 20 3d 20 48 32 28 3a 2c 33 29 3b 0a 20 20 20 0a 20 20 09 | ))]);....Tckk.=.H2(:,3);........ |
daa0 | 65 76 61 6c 28 5b 27 6f 6d 63 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 3d 20 6f 6d 63 | eval(['omc_'.num2str(kk).'.=.omc |
dac0 | 6b 6b 3b 27 5d 29 3b 0a 20 20 09 65 76 61 6c 28 5b 27 54 63 5f 27 20 6e 75 6d 32 73 74 72 28 6b | kk;']);....eval(['Tc_'.num2str(k |
dae0 | 6b 29 20 27 20 3d 20 54 63 6b 6b 3b 27 5d 29 3b 0a 20 20 20 09 0a 65 6e 64 3b 0a 0a 0a 20 20 20 | k).'.=.Tckk;']);......end;...... |
db00 | 20 20 20 0a 25 20 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 61 72 61 | ....%.Initialisation.of.the.para |
db20 | 6d 65 74 65 72 73 20 66 6f 72 20 67 6c 6f 62 61 6c 20 6d 69 6e 69 6d 69 7a 61 74 69 6f 6e 3a 0a | meters.for.global.minimization:. |
db40 | 0a 69 6e 69 74 5f 70 61 72 61 6d 20 3d 20 5b 66 5f 69 6e 69 74 3b 6b 5f 69 6e 69 74 5d 3b 0a 0a | .init_param.=.[f_init;k_init];.. |
db60 | 66 6f 72 20 6b 6b 20 3d 20 31 3a 6e 5f 69 6d 61 2c 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 69 | for.kk.=.1:n_ima,.......eval(['i |
db80 | 6e 69 74 5f 70 61 72 61 6d 20 3d 20 5b 69 6e 69 74 5f 70 61 72 61 6d 3b 20 6f 6d 63 5f 27 20 6e | nit_param.=.[init_param;.omc_'.n |
dba0 | 75 6d 32 73 74 72 28 6b 6b 29 20 27 3b 20 54 63 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 | um2str(kk).';.Tc_'.num2str(kk).' |
dbc0 | 5d 3b 27 5d 29 3b 0a 65 6e 64 3b 0a 0a 69 66 20 65 78 69 73 74 28 27 6c 65 61 73 74 73 71 27 29 | ];']);.end;..if.exist('leastsq') |
dbe0 | 2c 0a 20 20 20 73 73 73 20 3d 20 5b 27 5b 70 61 72 61 6d 2c 6f 70 74 5d 20 3d 20 6c 65 61 73 74 | ,....sss.=.['[param,opt].=.least |
dc00 | 73 71 28 27 27 6d 75 6c 74 69 5f 65 72 72 6f 72 5f 6f 75 6c 75 27 27 2c 69 6e 69 74 5f 70 61 72 | sq(''multi_error_oulu'',init_par |
dc20 | 61 6d 2c 6f 70 74 69 6f 6e 73 2c 5b 5d 2c 6e 5f 69 6d 61 2c 63 5f 69 6e 69 74 29 3b 27 5d 3b 0a | am,options,[],n_ima,c_init);'];. |
dc40 | 65 6c 73 65 0a 20 20 20 73 73 73 20 3d 20 5b 27 5b 70 61 72 61 6d 2c 6f 70 74 5d 20 3d 20 6c 65 | else....sss.=.['[param,opt].=.le |
dc60 | 61 73 74 73 71 32 28 27 27 6d 75 6c 74 69 5f 65 72 72 6f 72 5f 6f 75 6c 75 27 27 2c 69 6e 69 74 | astsq2(''multi_error_oulu'',init |
dc80 | 5f 70 61 72 61 6d 2c 6f 70 74 69 6f 6e 73 2c 5b 5d 2c 6e 5f 69 6d 61 2c 63 5f 69 6e 69 74 29 3b | _param,options,[],n_ima,c_init); |
dca0 | 27 5d 3b 0a 65 6e 64 3b 0a 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 5c 6e 4f 70 74 69 6d 69 7a 61 | '];.end;...fprintf(1,'\nOptimiza |
dcc0 | 74 69 6f 6e 20 6e 6f 74 20 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 70 72 69 6e 63 69 70 61 6c | tion.not.including.the.principal |
dce0 | 20 70 6f 69 6e 74 2e 2e 2e 5c 6e 27 29 0a 0a 6f 70 74 69 6f 6e 73 20 3d 20 5b 31 20 31 65 2d 34 | .point...\n')..options.=.[1.1e-4 |
dd00 | 20 31 65 2d 34 20 31 65 2d 36 20 20 30 20 30 20 30 20 30 20 30 20 30 20 30 20 30 20 30 20 34 30 | .1e-4.1e-6..0.0.0.0.0.0.0.0.0.40 |
dd20 | 30 30 20 30 20 31 65 2d 38 20 30 2e 31 20 30 5d 3b 0a 0a 65 76 61 6c 28 73 73 73 29 3b 0a 0a 68 | 00.0.1e-8.0.1.0];..eval(sss);..h |
dd40 | 69 73 74 6f 72 79 20 20 3d 20 5b 5b 69 6e 69 74 5f 70 61 72 61 6d 3b 63 5f 69 6e 69 74 5d 20 5b | istory..=.[[init_param;c_init].[ |
dd60 | 70 61 72 61 6d 3b 63 5f 69 6e 69 74 5d 5d 3b 0a 0a 73 6f 6c 5f 6e 6f 5f 63 65 6e 74 65 72 20 3d | param;c_init]];..sol_no_center.= |
dd80 | 20 5b 70 61 72 61 6d 3b 63 5f 69 6e 69 74 5d 3b 0a 0a 69 6e 69 74 5f 70 61 72 61 6d 20 3d 20 73 | .[param;c_init];..init_param.=.s |
dda0 | 6f 6c 5f 6e 6f 5f 63 65 6e 74 65 72 3b 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 5c 6e 4f 70 74 69 | ol_no_center;..fprintf(1,'\nOpti |
ddc0 | 6d 69 7a 61 74 69 6f 6e 20 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 70 72 69 6e 63 69 70 61 6c | mization.including.the.principal |
dde0 | 20 70 6f 69 6e 74 2e 2e 2e 5c 6e 27 29 0a 0a 65 76 61 6c 28 73 73 73 29 3b 0a 0a 68 69 73 74 6f | .point...\n')..eval(sss);..histo |
de00 | 72 79 20 3d 20 5b 68 69 73 74 6f 72 79 20 70 61 72 61 6d 5d 3b 0a 0a 0a 73 6f 6c 5f 77 69 74 68 | ry.=.[history.param];...sol_with |
de20 | 5f 63 65 6e 74 65 72 20 3d 20 70 61 72 61 6d 3b 0a 0a 0a 0a 0a 25 25 25 20 45 78 74 72 61 63 74 | _center.=.param;.....%%%.Extract |
de40 | 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6e 61 6c 20 69 6e 74 72 69 6e 73 69 63 20 61 6e 64 20 65 | ion.of.the.final.intrinsic.and.e |
de60 | 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 61 74 65 72 73 20 28 69 6e 20 74 68 65 20 6e 6f 2d 63 | xtrinsic.paramaters.(in.the.no-c |
de80 | 65 6e 74 65 72 20 63 61 73 65 29 3a 0a 0a 73 6f 6c 75 74 69 6f 6e 20 3d 20 73 6f 6c 5f 6e 6f 5f | enter.case):..solution.=.sol_no_ |
dea0 | 63 65 6e 74 65 72 3b 0a 65 78 74 72 61 63 74 5f 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 66 70 72 | center;.extract_parameters;..fpr |
dec0 | 69 6e 74 66 28 31 2c 27 5c 6e 5c 6e 43 61 6c 69 62 72 61 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 | intf(1,'\n\nCalibration.results. |
dee0 | 77 69 74 68 6f 75 74 20 70 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 20 65 73 74 69 6d 61 74 69 | without.principal.point.estimati |
df00 | 6f 6e 3a 5c 6e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 46 6f 63 61 6c 20 4c 65 6e 67 | on:\n\n');.fprintf(1,'Focal.Leng |
df20 | 74 68 3a 20 20 20 20 20 66 63 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 | th:.....fc.=.[.%3.5f...%3.5f]\n' |
df40 | 2c 66 63 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 50 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 | ,fc);.fprintf(1,'Principal.point |
df60 | 3a 20 20 63 63 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 63 63 29 3b | :..cc.=.[.%3.5f...%3.5f]\n',cc); |
df80 | 0a 66 70 72 69 6e 74 66 28 31 2c 27 44 69 73 74 6f 72 74 69 6f 6e 3a 20 20 20 20 20 20 20 6b 63 | .fprintf(1,'Distortion:.......kc |
dfa0 | 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 20 20 20 25 33 2e | .=.[.%3.5f...%3.5f...%3.5f...%3. |
dfc0 | 35 66 5d 5c 6e 27 2c 6b 63 29 3b 20 20 20 0a 66 70 72 69 6e 74 66 28 31 2c 5b 27 50 69 78 65 6c | 5f]\n',kc);....fprintf(1,['Pixel |
dfe0 | 20 65 72 72 6f 72 3a 20 20 20 20 20 20 5b 63 6c 69 63 6b 20 6f 6e 20 27 27 73 6f 6c 2e 20 77 69 | .error:......[click.on.''sol..wi |
e000 | 74 68 6f 75 74 20 63 65 6e 74 65 72 27 27 5d 5c 6e 27 5d 29 3b 20 0a 0a 0a 0a 0a 25 20 50 69 63 | thout.center'']\n']);......%.Pic |
e020 | 6b 20 74 68 65 20 73 6f 6c 75 74 69 6f 6e 20 77 69 74 68 20 70 72 69 6e 63 69 70 61 6c 20 70 6f | k.the.solution.with.principal.po |
e040 | 69 6e 74 0a 25 25 25 20 4e 4f 54 45 3a 20 41 74 20 74 68 61 74 20 70 6f 69 6e 74 2c 20 74 68 65 | int.%%%.NOTE:.At.that.point,.the |
e060 | 20 75 73 65 72 20 63 61 6e 20 63 68 6f 6f 73 65 20 77 68 69 63 68 20 73 6f 6c 75 74 69 6f 6e 20 | .user.can.choose.which.solution. |
e080 | 74 6f 20 70 69 63 6b 3a 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 0a 25 25 25 20 70 72 69 | to.pick:.with.or.without.%%%.pri |
e0a0 | 6e 63 69 70 61 6c 20 70 6f 69 6e 74 20 65 73 74 69 6d 61 74 69 6f 6e 2e 20 42 79 20 64 65 66 61 | ncipal.point.estimation..By.defa |
e0c0 | 75 6c 74 2c 20 77 65 20 70 69 63 6b 20 74 68 65 20 73 6f 6c 75 74 69 6f 6e 20 77 69 74 68 20 70 | ult,.we.pick.the.solution.with.p |
e0e0 | 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 2e 0a 0a 73 6f 6c 75 74 69 6f 6e 20 3d 20 73 6f 6c 5f | rincipal.point...solution.=.sol_ |
e100 | 77 69 74 68 5f 63 65 6e 74 65 72 3b 0a 0a 0a 0a 25 25 25 20 45 78 74 72 61 63 74 69 6f 6e 20 6f | with_center;....%%%.Extraction.o |
e120 | 66 20 74 68 65 20 66 69 6e 61 6c 20 69 6e 74 72 69 6e 73 69 63 20 61 6e 64 20 65 78 74 72 69 6e | f.the.final.intrinsic.and.extrin |
e140 | 73 69 63 20 70 61 72 61 6d 61 74 65 72 73 3a 0a 0a 65 78 74 72 61 63 74 5f 70 61 72 61 6d 65 74 | sic.paramaters:..extract_paramet |
e160 | 65 72 73 3b 0a 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 5c 6e 5c 6e 43 61 6c 69 62 72 61 74 69 6f | ers;...fprintf(1,'\n\nCalibratio |
e180 | 6e 20 72 65 73 75 6c 74 73 20 77 69 74 68 20 70 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 20 65 | n.results.with.principal.point.e |
e1a0 | 73 74 69 6d 61 74 69 6f 6e 3a 5c 6e 5c 6e 27 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 46 6f 63 | stimation:\n\n');.fprintf(1,'Foc |
e1c0 | 61 6c 20 4c 65 6e 67 74 68 3a 20 20 20 20 20 66 63 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 | al.Length:.....fc.=.[.%3.5f...%3 |
e1e0 | 2e 35 66 5d 5c 6e 27 2c 66 63 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 50 72 69 6e 63 69 70 61 | .5f]\n',fc);.fprintf(1,'Principa |
e200 | 6c 20 70 6f 69 6e 74 3a 20 20 63 63 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c | l.point:..cc.=.[.%3.5f...%3.5f]\ |
e220 | 6e 27 2c 63 63 29 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 44 69 73 74 6f 72 74 69 6f 6e 3a 20 20 | n',cc);.fprintf(1,'Distortion:.. |
e240 | 20 20 20 20 20 6b 63 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 20 20 20 25 33 2e 35 | .....kc.=.[.%3.5f...%3.5f...%3.5 |
e260 | 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 6b 63 29 3b 20 20 20 0a 0a 0a 25 25 25 25 25 25 25 25 | f...%3.5f]\n',kc);......%%%%%%%% |
e280 | 25 25 25 25 25 25 25 25 25 25 25 25 20 47 52 41 50 48 49 43 41 4c 20 4f 55 54 50 55 54 20 25 25 | %%%%%%%%%%%%.GRAPHICAL.OUTPUT.%% |
e2a0 | 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 0a 0a 67 72 61 70 68 6f 75 74 | %%%%%%%%%%%%%%%%%%%%%%..graphout |
e2c0 | 5f 63 61 6c 69 62 3b 0a 0a 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 4e 6f 74 65 3a 20 49 66 20 74 | _calib;....fprintf(1,'Note:.If.t |
e2e0 | 68 65 20 73 6f 6c 75 74 69 6f 6e 20 69 73 20 6e 6f 74 20 73 61 74 69 73 66 61 63 74 6f 72 79 2c | he.solution.is.not.satisfactory, |
e300 | 20 73 65 6c 65 63 74 20 73 6f 6c 75 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 63 65 6e 74 65 72 20 | .select.solution.without.center. |
e320 | 65 73 74 69 6d 61 74 69 6f 6e 2e 5c 6e 5c 6e 27 29 3b 0a 0a 0a 25 25 25 25 25 25 25 25 25 25 25 | estimation.\n\n');...%%%%%%%%%%% |
e340 | 25 25 25 20 53 61 76 65 20 61 6c 6c 20 74 68 65 20 43 61 6c 69 62 72 61 74 69 6f 6e 20 72 65 73 | %%%.Save.all.the.Calibration.res |
e360 | 75 6c 74 73 3a 0a 0a 64 69 73 70 28 27 53 61 76 65 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 72 65 | ults:..disp('Save.calibration.re |
e380 | 73 75 6c 74 73 20 75 6e 64 65 72 20 43 61 6c 69 62 5f 52 65 73 75 6c 74 73 2e 6d 61 74 27 29 3b | sults.under.Calib_Results.mat'); |
e3a0 | 0a 0a 73 74 72 69 6e 67 5f 73 61 76 65 20 3d 20 27 73 61 76 65 20 43 61 6c 69 62 5f 52 65 73 75 | ..string_save.=.'save.Calib_Resu |
e3c0 | 6c 74 73 20 66 63 20 6b 63 20 63 63 20 65 78 20 78 20 79 20 73 6f 6c 75 74 69 6f 6e 20 73 6f 6c | lts.fc.kc.cc.ex.x.y.solution.sol |
e3e0 | 5f 77 69 74 68 5f 63 65 6e 74 65 72 20 73 6f 6c 5f 6e 6f 5f 63 65 6e 74 65 72 20 68 69 73 74 6f | _with_center.sol_no_center.histo |
e400 | 72 79 20 77 69 6e 74 78 20 77 69 6e 74 79 20 6e 5f 69 6d 61 20 74 79 70 65 5f 6e 75 6d 62 65 72 | ry.wintx.winty.n_ima.type_number |
e420 | 69 6e 67 20 4e 5f 73 6c 6f 74 73 20 73 6d 61 6c 6c 5f 63 61 6c 69 62 5f 69 6d 61 67 65 20 66 69 | ing.N_slots.small_calib_image.fi |
e440 | 72 73 74 5f 6e 75 6d 20 69 6d 61 67 65 5f 6e 75 6d 62 65 72 73 20 66 6f 72 6d 61 74 5f 69 6d 61 | rst_num.image_numbers.format_ima |
e460 | 67 65 20 63 61 6c 69 62 5f 6e 61 6d 65 20 48 63 61 6c 20 57 63 61 6c 20 6e 78 20 6e 79 20 6d 61 | ge.calib_name.Hcal.Wcal.nx.ny.ma |
e480 | 70 20 64 58 5f 64 65 66 61 75 6c 74 20 64 59 5f 64 65 66 61 75 6c 74 20 4b 4b 20 69 6e 76 5f 4b | p.dX_default.dY_default.KK.inv_K |
e4a0 | 4b 20 64 58 20 64 59 27 3b 0a 0a 66 6f 72 20 6b 6b 20 3d 20 31 3a 6e 5f 69 6d 61 2c 0a 20 20 20 | K.dX.dY';..for.kk.=.1:n_ima,.... |
e4c0 | 73 74 72 69 6e 67 5f 73 61 76 65 20 3d 20 5b 73 74 72 69 6e 67 5f 73 61 76 65 20 27 20 58 5f 27 | string_save.=.[string_save.'.X_' |
e4e0 | 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 | .num2str(kk).'.x_'.num2str(kk).' |
e500 | 20 79 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 65 78 5f 27 20 6e 75 6d 32 73 74 72 28 | .y_'.num2str(kk).'.ex_'.num2str( |
e520 | 6b 6b 29 20 27 20 6f 6d 63 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 54 63 5f 27 20 6e | kk).'.omc_'.num2str(kk).'.Tc_'.n |
e540 | 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 48 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 6e | um2str(kk).'.H_'.num2str(kk).'.n |
e560 | 5f 73 71 5f 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 6e 5f 73 71 5f 79 5f 27 20 6e | _sq_x_'.num2str(kk).'.n_sq_y_'.n |
e580 | 75 6d 32 73 74 72 28 6b 6b 29 5d 3b 0a 65 6e 64 3b 0a 0a 65 76 61 6c 28 73 74 72 69 6e 67 5f 73 | um2str(kk)];.end;..eval(string_s |
e5a0 | 61 76 65 29 3b 0a 34 5d 3b 0a 20 20 20 0a 20 20 20 62 5f 6b 6b 20 3d 20 2d 5b 63 31 2a 63 32 3b | ave);.4];........b_kk.=.-[c1*c2; |
e5c0 | 63 33 2a 63 34 5d 3b 0a 20 20 20 0a 0a 20 20 20 41 20 3d 20 5b 41 3b 41 5f 6b 6b 5d 3b 0a 20 20 | c3*c4];.........A.=.[A;A_kk];... |
e5e0 | 20 62 20 3d 20 5b 62 3b 62 5f 6b 6b 5d 3b 0a 20 20 20 0a 65 6e 64 3b 0a 0a 25 20 75 73 65 20 61 | .b.=.[b;b_kk];.....end;..%.use.a |
e600 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 67 72 61 70 68 6f 75 74 5f 63 61 6c 69 62 2e 6d 00 00 | TOOLBOX_calib/graphout_calib.m.. |
e620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e660 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
e680 | 20 20 20 35 37 31 31 20 20 36 37 36 33 30 37 30 32 32 37 20 20 31 31 35 37 30 00 20 00 00 00 00 | ...5711..6763070227..11570...... |
e6a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e6c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e6e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e7a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e7e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
e800 | 0a 0a 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 20 47 52 41 50 48 49 43 41 4c | ..%%%%%%%%%%%%%%%%%%%%.GRAPHICAL |
e820 | 20 4f 55 54 50 55 54 20 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 | .OUTPUT.%%%%%%%%%%%%%%%%%%%%%%%% |
e840 | 0a 0a 0a 25 20 43 6f 6c 6f 72 20 63 6f 64 65 20 66 6f 72 20 65 61 63 68 20 69 6d 61 67 65 3a 0a | ...%.Color.code.for.each.image:. |
e860 | 0a 63 6f 6c 6f 72 73 20 3d 20 27 62 72 67 6b 63 6d 27 3b 0a 0a 0a 25 25 25 20 53 68 6f 77 20 74 | .colors.=.'brgkcm';...%%%.Show.t |
e880 | 68 65 20 65 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 65 74 65 72 73 0a 0a 49 50 20 3d 20 38 2a | he.extrinsic.parameters..IP.=.8* |
e8a0 | 64 58 2a 28 5b 30 20 6e 78 2d 31 20 6e 78 2d 31 20 30 20 30 20 3b 20 30 20 30 20 6e 79 2d 31 20 | dX*([0.nx-1.nx-1.0.0.;.0.0.ny-1. |
e8c0 | 6e 79 2d 31 20 30 3b 31 20 31 20 31 20 31 20 31 5d 20 2d 20 5b 63 63 3b 30 5d 2a 6f 6e 65 73 28 | ny-1.0;1.1.1.1.1].-.[cc;0]*ones( |
e8e0 | 31 2c 35 29 29 20 2e 2f 20 28 5b 66 63 3b 31 5d 2a 6f 6e 65 73 28 31 2c 35 29 29 3b 0a 0a 0a 66 | 1,5))../.([fc;1]*ones(1,5));...f |
e900 | 69 67 75 72 65 28 34 29 3b 0a 5b 61 2c 62 5d 20 3d 20 76 69 65 77 3b 0a 0a 66 69 67 75 72 65 28 | igure(4);.[a,b].=.view;..figure( |
e920 | 34 29 3b 0a 70 6c 6f 74 33 28 35 2a 5b 30 20 64 58 20 30 20 30 20 30 20 30 20 5d 2c 35 2a 5b 30 | 4);.plot3(5*[0.dX.0.0.0.0.],5*[0 |
e940 | 20 30 20 30 20 30 20 30 20 64 58 5d 2c 2d 35 2a 5b 30 20 30 20 30 20 64 58 20 30 20 30 20 5d 2c | .0.0.0.0.dX],-5*[0.0.0.dX.0.0.], |
e960 | 27 62 2d 27 2c 27 6c 69 6e 65 77 69 64 74 68 27 2c 32 27 29 3b 0a 68 6f 6c 64 20 6f 6e 3b 0a 70 | 'b-','linewidth',2');.hold.on;.p |
e980 | 6c 6f 74 33 28 49 50 28 31 2c 3a 29 2c 49 50 28 33 2c 3a 29 2c 2d 49 50 28 32 2c 3a 29 2c 27 72 | lot3(IP(1,:),IP(3,:),-IP(2,:),'r |
e9a0 | 2d 27 2c 27 6c 69 6e 65 77 69 64 74 68 27 2c 32 29 3b 0a 74 65 78 74 28 36 2a 64 58 2c 30 2c 30 | -','linewidth',2);.text(6*dX,0,0 |
e9c0 | 2c 27 58 5f 63 27 29 3b 0a 74 65 78 74 28 2d 64 58 2c 35 2a 64 58 2c 30 2c 27 5a 5f 63 27 29 3b | ,'X_c');.text(-dX,5*dX,0,'Z_c'); |
e9e0 | 0a 74 65 78 74 28 30 2c 30 2c 2d 36 2a 64 58 2c 27 59 5f 63 27 29 3b 0a 74 65 78 74 28 2d 64 58 | .text(0,0,-6*dX,'Y_c');.text(-dX |
ea00 | 2c 2d 64 58 2c 64 58 2c 27 4f 5f 63 27 29 3b 0a 0a 0a 66 6f 72 20 6b 6b 20 3d 20 31 3a 6e 5f 69 | ,-dX,dX,'O_c');...for.kk.=.1:n_i |
ea20 | 6d 61 2c 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 58 58 5f 6b 6b 20 3d 20 58 5f 27 20 6e 75 | ma,........eval(['XX_kk.=.X_'.nu |
ea40 | 6d 32 73 74 72 28 6b 6b 29 20 27 3b 27 5d 29 3b 0a 20 20 20 65 76 61 6c 28 5b 27 6f 6d 63 5f 6b | m2str(kk).';']);....eval(['omc_k |
ea60 | 6b 20 3d 20 6f 6d 63 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 3b 27 5d 29 3b 0a 20 20 20 | k.=.omc_'.num2str(kk).';']);.... |
ea80 | 65 76 61 6c 28 5b 27 54 63 5f 6b 6b 20 3d 20 54 63 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 | eval(['Tc_kk.=.Tc_'.num2str(kk). |
eaa0 | 27 3b 27 5d 29 3b 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 6e 5f 73 71 5f 78 20 3d 20 6e 5f | ';']);........eval(['n_sq_x.=.n_ |
eac0 | 73 71 5f 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 3b 27 5d 29 3b 0a 20 20 20 65 76 61 | sq_x_'.num2str(kk).';']);....eva |
eae0 | 6c 28 5b 27 6e 5f 73 71 5f 79 20 3d 20 6e 5f 73 71 5f 79 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b | l(['n_sq_y.=.n_sq_y_'.num2str(kk |
eb00 | 29 20 27 3b 27 5d 29 3b 0a 20 20 20 0a 20 20 20 52 5f 6b 6b 20 3d 20 72 6f 64 72 69 67 75 65 73 | ).';']);........R_kk.=.rodrigues |
eb20 | 28 6f 6d 63 5f 6b 6b 29 3b 0a 20 20 20 0a 20 20 20 59 59 5f 6b 6b 20 3d 20 52 5f 6b 6b 20 2a 20 | (omc_kk);........YY_kk.=.R_kk.*. |
eb40 | 58 58 5f 6b 6b 20 2b 20 54 63 5f 6b 6b 20 2a 20 6f 6e 65 73 28 31 2c 6c 65 6e 67 74 68 28 58 58 | XX_kk.+.Tc_kk.*.ones(1,length(XX |
eb60 | 5f 6b 6b 29 29 3b 0a 20 20 20 0a 20 20 20 75 75 20 3d 20 5b 2d 64 58 3b 2d 64 59 3b 30 5d 2f 32 | _kk));........uu.=.[-dX;-dY;0]/2 |
eb80 | 3b 0a 20 20 20 75 75 20 3d 20 52 5f 6b 6b 20 2a 20 75 75 20 2b 20 54 63 5f 6b 6b 3b 20 0a 20 20 | ;....uu.=.R_kk.*.uu.+.Tc_kk;.... |
eba0 | 20 0a 20 20 20 59 59 78 20 3d 20 7a 65 72 6f 73 28 6e 5f 73 71 5f 78 2b 31 2c 6e 5f 73 71 5f 79 | .....YYx.=.zeros(n_sq_x+1,n_sq_y |
ebc0 | 2b 31 29 3b 0a 20 20 20 59 59 79 20 3d 20 7a 65 72 6f 73 28 6e 5f 73 71 5f 78 2b 31 2c 6e 5f 73 | +1);....YYy.=.zeros(n_sq_x+1,n_s |
ebe0 | 71 5f 79 2b 31 29 3b 0a 20 20 20 59 59 7a 20 3d 20 7a 65 72 6f 73 28 6e 5f 73 71 5f 78 2b 31 2c | q_y+1);....YYz.=.zeros(n_sq_x+1, |
ec00 | 6e 5f 73 71 5f 79 2b 31 29 3b 0a 20 20 20 0a 20 20 20 59 59 78 28 3a 29 20 3d 20 59 59 5f 6b 6b | n_sq_y+1);........YYx(:).=.YY_kk |
ec20 | 28 31 2c 3a 29 3b 0a 20 20 20 59 59 79 28 3a 29 20 3d 20 59 59 5f 6b 6b 28 32 2c 3a 29 3b 0a 20 | (1,:);....YYy(:).=.YY_kk(2,:);.. |
ec40 | 20 20 59 59 7a 28 3a 29 20 3d 20 59 59 5f 6b 6b 28 33 2c 3a 29 3b 0a 20 20 20 0a 20 20 20 0a 20 | ..YYz(:).=.YY_kk(3,:);.......... |
ec60 | 20 20 25 6b 65 79 62 6f 61 72 64 3b 0a 20 20 20 0a 20 20 20 66 69 67 75 72 65 28 34 29 3b 0a 20 | ..%keyboard;........figure(4);.. |
ec80 | 20 20 68 68 68 3d 20 6d 65 73 68 28 59 59 78 2c 59 59 7a 2c 2d 59 59 79 29 3b 0a 20 20 20 73 65 | ..hhh=.mesh(YYx,YYz,-YYy);....se |
eca0 | 74 28 68 68 68 2c 27 65 64 67 65 63 6f 6c 6f 72 27 2c 63 6f 6c 6f 72 73 28 72 65 6d 28 6b 6b 2d | t(hhh,'edgecolor',colors(rem(kk- |
ecc0 | 31 2c 36 29 2b 31 29 2c 27 6c 69 6e 65 77 69 64 74 68 27 2c 31 29 3b 20 25 2c 27 66 61 63 65 63 | 1,6)+1),'linewidth',1);.%,'facec |
ece0 | 6f 6c 6f 72 27 2c 27 6e 6f 6e 65 27 29 3b 0a 20 20 20 25 70 6c 6f 74 33 28 59 59 5f 6b 6b 28 31 | olor','none');....%plot3(YY_kk(1 |
ed00 | 2c 3a 29 2c 59 59 5f 6b 6b 28 33 2c 3a 29 2c 2d 59 59 5f 6b 6b 28 32 2c 3a 29 2c 5b 27 6f 27 20 | ,:),YY_kk(3,:),-YY_kk(2,:),['o'. |
ed20 | 63 6f 6c 6f 72 73 28 72 65 6d 28 6b 6b 2d 31 2c 36 29 2b 31 29 5d 29 3b 0a 20 20 20 74 65 78 74 | colors(rem(kk-1,6)+1)]);....text |
ed40 | 28 75 75 28 31 29 2c 75 75 28 33 29 2c 2d 75 75 28 32 29 2c 6e 75 6d 32 73 74 72 28 6b 6b 29 2c | (uu(1),uu(3),-uu(2),num2str(kk), |
ed60 | 27 66 6f 6e 74 73 69 7a 65 27 2c 31 34 2c 27 63 6f 6c 6f 72 27 2c 63 6f 6c 6f 72 73 28 72 65 6d | 'fontsize',14,'color',colors(rem |
ed80 | 28 6b 6b 2d 31 2c 36 29 2b 31 29 29 3b 0a 20 20 20 0a 65 6e 64 3b 0a 0a 66 69 67 75 72 65 28 34 | (kk-1,6)+1));.....end;..figure(4 |
eda0 | 29 3b 72 6f 74 61 74 65 33 64 20 6f 6e 3b 0a 61 78 69 73 28 27 65 71 75 61 6c 27 29 3b 0a 74 69 | );rotate3d.on;.axis('equal');.ti |
edc0 | 74 6c 65 28 27 45 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 65 74 65 72 73 27 29 3b 0a 25 76 69 | tle('Extrinsic.parameters');.%vi |
ede0 | 65 77 28 36 30 2c 33 30 29 3b 0a 76 69 65 77 28 61 2c 62 29 3b 0a 68 6f 6c 64 20 6f 66 66 3b 0a | ew(60,30);.view(a,b);.hold.off;. |
ee00 | 0a 0a 0a 25 20 52 65 70 72 6f 6a 65 63 74 20 74 68 65 20 70 61 74 74 65 72 6e 73 20 6f 6e 20 74 | ...%.Reproject.the.patterns.on.t |
ee20 | 68 65 20 69 6d 61 67 65 73 2c 20 61 6e 64 20 63 6f 6d 70 75 74 65 20 74 68 65 20 70 69 78 65 6c | he.images,.and.compute.the.pixel |
ee40 | 20 65 72 72 6f 72 73 3a 0a 0a 25 20 52 65 6c 6f 61 64 20 74 68 65 20 69 6d 61 67 65 73 20 69 66 | .errors:..%.Reload.the.images.if |
ee60 | 20 6e 65 63 65 73 73 61 72 79 0a 0a 69 66 20 7e 65 78 69 73 74 28 27 49 5f 31 27 29 2c 0a 20 20 | .necessary..if.~exist('I_1'),... |
ee80 | 20 69 6d 61 5f 72 65 61 64 5f 63 61 6c 69 62 3b 0a 65 6e 64 3b 0a 0a 0a 65 78 20 3d 20 5b 5d 3b | .ima_read_calib;.end;...ex.=.[]; |
eea0 | 20 25 20 47 6c 6f 62 61 6c 20 65 72 72 6f 72 20 76 65 63 74 6f 72 0a 78 20 3d 20 5b 5d 3b 20 25 | .%.Global.error.vector.x.=.[];.% |
eec0 | 20 44 65 74 65 63 74 65 64 20 63 6f 72 6e 65 72 73 20 6f 6e 20 74 68 65 20 69 6d 61 67 65 20 70 | .Detected.corners.on.the.image.p |
eee0 | 6c 61 6e 65 0a 79 20 3d 20 5b 5d 3b 20 25 20 52 65 70 72 6f 6a 65 63 74 65 64 20 70 6f 69 6e 74 | lane.y.=.[];.%.Reprojected.point |
ef00 | 73 0a 0a 66 6f 72 20 6b 6b 20 3d 20 31 3a 6e 5f 69 6d 61 2c 0a 20 20 20 0a 20 20 20 65 76 61 6c | s..for.kk.=.1:n_ima,........eval |
ef20 | 28 5b 27 6f 6d 63 6b 6b 20 3d 20 6f 6d 63 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 3b 27 | (['omckk.=.omc_'.num2str(kk).';' |
ef40 | 5d 29 3b 0a 20 20 20 65 76 61 6c 28 5b 27 54 63 6b 6b 20 3d 20 54 63 5f 27 20 6e 75 6d 32 73 74 | ]);....eval(['Tckk.=.Tc_'.num2st |
ef60 | 72 28 6b 6b 29 20 27 3b 27 5d 29 3b 0a 20 20 20 0a 20 20 20 52 6b 6b 20 3d 20 72 6f 64 72 69 67 | r(kk).';']);........Rkk.=.rodrig |
ef80 | 75 65 73 28 6f 6d 63 6b 6b 29 3b 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 79 5f 27 20 6e 75 | ues(omckk);........eval(['y_'.nu |
efa0 | 6d 32 73 74 72 28 6b 6b 29 20 27 20 20 3d 20 70 72 6f 6a 65 63 74 32 5f 6f 75 6c 75 28 58 5f 27 | m2str(kk).'..=.project2_oulu(X_' |
efc0 | 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 2c 52 6b 6b 2c 54 63 6b 6b 2c 66 63 2c 63 63 2c 6b 63 | .num2str(kk).',Rkk,Tckk,fc,cc,kc |
efe0 | 29 3b 27 5d 29 3b 0a 0a 20 20 20 65 76 61 6c 28 5b 27 65 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b | );']);.....eval(['ex_'.num2str(k |
f000 | 6b 29 20 27 20 3d 20 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 2d 79 5f 27 20 6e 75 | k).'.=.x_'.num2str(kk).'.-y_'.nu |
f020 | 6d 32 73 74 72 28 6b 6b 29 20 27 3b 27 5d 29 3b 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 78 | m2str(kk).';']);........eval(['x |
f040 | 5f 6b 6b 20 3d 20 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 3b 27 5d 29 3b 0a 20 20 20 | _kk.=.x_'.num2str(kk).';']);.... |
f060 | 0a 20 20 20 66 69 67 75 72 65 28 34 2b 6b 6b 29 3b 0a 20 20 20 65 76 61 6c 28 5b 27 49 20 3d 20 | ....figure(4+kk);....eval(['I.=. |
f080 | 49 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 3b 27 5d 29 3b 0a 20 20 20 69 6d 61 67 65 28 | I_'.num2str(kk).';']);....image( |
f0a0 | 49 29 3b 20 68 6f 6c 64 20 6f 6e 3b 0a 20 20 20 63 6f 6c 6f 72 6d 61 70 28 67 72 61 79 28 32 35 | I);.hold.on;....colormap(gray(25 |
f0c0 | 36 29 29 3b 0a 20 20 20 74 69 74 6c 65 28 5b 27 49 6d 61 67 65 20 27 20 6e 75 6d 32 73 74 72 28 | 6));....title(['Image.'.num2str( |
f0e0 | 6b 6b 29 20 27 20 2d 20 49 6d 61 67 65 20 70 6f 69 6e 74 73 20 28 2b 29 20 61 6e 64 20 72 65 70 | kk).'.-.Image.points.(+).and.rep |
f100 | 72 6f 6a 65 63 74 65 64 20 67 72 69 64 20 70 6f 69 6e 74 73 20 28 6f 29 27 5d 29 3b 0a 20 20 20 | rojected.grid.points.(o)']);.... |
f120 | 65 76 61 6c 28 5b 27 70 6c 6f 74 28 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 28 31 2c | eval(['plot(x_'.num2str(kk).'(1, |
f140 | 3a 29 2b 31 2c 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 28 32 2c 3a 29 2b 31 2c 27 27 | :)+1,x_'.num2str(kk).'(2,:)+1,'' |
f160 | 72 2b 27 27 29 3b 27 5d 29 3b 0a 20 20 20 65 76 61 6c 28 5b 27 70 6c 6f 74 28 79 5f 27 20 6e 75 | r+'');']);....eval(['plot(y_'.nu |
f180 | 6d 32 73 74 72 28 6b 6b 29 20 27 28 31 2c 3a 29 2b 31 2c 79 5f 27 20 6e 75 6d 32 73 74 72 28 6b | m2str(kk).'(1,:)+1,y_'.num2str(k |
f1a0 | 6b 29 20 27 28 32 2c 3a 29 2b 31 2c 27 27 27 20 63 6f 6c 6f 72 73 28 72 65 6d 28 6b 6b 2d 31 2c | k).'(2,:)+1,'''.colors(rem(kk-1, |
f1c0 | 36 29 2b 31 29 20 27 6f 27 27 29 3b 27 5d 29 3b 0a 20 20 20 7a 6f 6f 6d 20 6f 6e 3b 0a 20 20 20 | 6)+1).'o'');']);....zoom.on;.... |
f1e0 | 68 6f 6c 64 20 6f 66 66 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 65 78 20 3d | hold.off;............eval(['ex.= |
f200 | 20 5b 65 78 20 65 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 5d 3b 27 5d 29 3b 0a 20 20 | .[ex.ex_'.num2str(kk).'];']);... |
f220 | 20 65 76 61 6c 28 5b 27 78 20 3d 20 5b 78 20 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 | .eval(['x.=.[x.x_'.num2str(kk).' |
f240 | 5d 3b 27 5d 29 3b 0a 20 20 20 65 76 61 6c 28 5b 27 79 20 3d 20 5b 79 20 79 5f 27 20 6e 75 6d 32 | ];']);....eval(['y.=.[y.y_'.num2 |
f260 | 73 74 72 28 6b 6b 29 20 27 5d 3b 27 5d 29 3b 0a 20 20 20 0a 65 6e 64 3b 0a 0a 0a 66 69 67 75 72 | str(kk).'];']);.....end;...figur |
f280 | 65 28 35 2b 6e 5f 69 6d 61 29 3b 0a 66 6f 72 20 6b 6b 20 3d 20 31 3a 6e 5f 69 6d 61 2c 0a 20 20 | e(5+n_ima);.for.kk.=.1:n_ima,... |
f2a0 | 20 65 76 61 6c 28 5b 27 70 6c 6f 74 28 65 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 28 | .eval(['plot(ex_'.num2str(kk).'( |
f2c0 | 31 2c 3a 29 2c 65 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 28 32 2c 3a 29 2c 27 27 27 | 1,:),ex_'.num2str(kk).'(2,:),''' |
f2e0 | 20 63 6f 6c 6f 72 73 28 72 65 6d 28 6b 6b 2d 31 2c 36 29 2b 31 29 20 27 2b 27 27 29 3b 27 5d 29 | .colors(rem(kk-1,6)+1).'+'');']) |
f300 | 3b 0a 20 20 20 68 6f 6c 64 20 6f 6e 3b 0a 65 6e 64 3b 0a 68 6f 6c 64 20 6f 66 66 3b 0a 61 78 69 | ;....hold.on;.end;.hold.off;.axi |
f320 | 73 28 27 65 71 75 61 6c 27 29 3b 0a 74 69 74 6c 65 28 27 52 65 70 72 6f 6a 65 63 74 69 6f 6e 20 | s('equal');.title('Reprojection. |
f340 | 65 72 72 6f 72 20 28 69 6e 20 70 69 78 65 6c 29 27 29 3b 0a 78 6c 61 62 65 6c 28 27 78 27 29 3b | error.(in.pixel)');.xlabel('x'); |
f360 | 0a 79 6c 61 62 65 6c 28 27 79 27 29 3b 0a 0a 65 72 72 5f 73 74 64 20 3d 20 73 74 64 28 65 78 27 | .ylabel('y');..err_std.=.std(ex' |
f380 | 29 27 3b 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 50 69 78 65 6c 20 65 72 72 6f 72 3a 20 20 20 20 | )';..fprintf(1,'Pixel.error:.... |
f3a0 | 20 20 65 72 72 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 5c 6e 27 2c 65 72 | ..err.=.[.%3.5f...%3.5f]\n\n',er |
f3c0 | 72 5f 73 74 64 29 3b 20 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | r_std);......................... |
f3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f400 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 69 6d 61 5f 72 65 61 64 5f 63 61 6c 69 62 2e 6d 00 00 | TOOLBOX_calib/ima_read_calib.m.. |
f420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f460 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
f480 | 20 20 20 31 37 35 34 20 20 36 37 36 33 30 37 30 32 32 37 20 20 31 31 35 30 33 00 20 00 00 00 00 | ...1754..6763070227..11503...... |
f4a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f4c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f4e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f5a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f5c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
f600 | 0a 69 66 20 7e 65 78 69 73 74 28 27 63 61 6c 69 62 5f 6e 61 6d 65 27 29 2c 0a 20 20 20 64 61 74 | .if.~exist('calib_name'),....dat |
f620 | 61 5f 63 61 6c 69 62 3b 0a 65 6e 64 3b 0a 0a 69 6d 61 67 65 5f 6e 75 6d 62 65 72 73 20 3d 20 66 | a_calib;.end;..image_numbers.=.f |
f640 | 69 72 73 74 5f 6e 75 6d 3a 6e 5f 69 6d 61 2d 31 2b 66 69 72 73 74 5f 6e 75 6d 3b 0a 0a 66 6f 72 | irst_num:n_ima-1+first_num;..for |
f660 | 20 69 20 3d 20 31 3a 6e 5f 69 6d 61 2c 0a 0a 20 20 20 66 70 72 69 6e 74 66 28 31 2c 27 4c 6f 61 | .i.=.1:n_ima,.....fprintf(1,'Loa |
f680 | 64 69 6e 67 20 69 6d 61 67 65 20 25 64 2e 2e 2e 5c 6e 27 2c 69 29 3b 0a 20 20 20 0a 20 20 20 69 | ding.image.%d...\n',i);........i |
f6a0 | 66 20 7e 74 79 70 65 5f 6e 75 6d 62 65 72 69 6e 67 2c 20 20 20 0a 20 20 20 20 20 20 6e 75 6d 62 | f.~type_numbering,..........numb |
f6c0 | 65 72 5f 65 78 74 20 3d 20 20 6e 75 6d 32 73 74 72 28 69 6d 61 67 65 5f 6e 75 6d 62 65 72 73 28 | er_ext.=..num2str(image_numbers( |
f6e0 | 69 29 29 3b 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 6e 75 6d 62 65 72 5f 65 78 74 20 3d 20 | i));....else.......number_ext.=. |
f700 | 73 70 72 69 6e 74 66 28 5b 27 25 2e 27 20 6e 75 6d 32 73 74 72 28 4e 5f 73 6c 6f 74 73 29 20 27 | sprintf(['%.'.num2str(N_slots).' |
f720 | 64 27 5d 2c 69 6d 61 67 65 5f 6e 75 6d 62 65 72 73 28 69 29 29 3b 0a 20 20 20 65 6e 64 3b 0a 0a | d'],image_numbers(i));....end;.. |
f740 | 20 20 20 69 66 20 66 6f 72 6d 61 74 5f 69 6d 61 67 65 28 31 29 20 3d 3d 20 27 72 27 2c 20 20 20 | ...if.format_image(1).==.'r',... |
f760 | 0a 20 20 20 20 20 20 49 69 20 3d 20 72 65 61 64 72 61 73 28 5b 63 61 6c 69 62 5f 6e 61 6d 65 20 | .......Ii.=.readras([calib_name. |
f780 | 20 6e 75 6d 62 65 72 5f 65 78 74 20 27 2e 72 61 73 27 5d 29 3b 0a 20 20 20 65 6c 73 65 0a 20 20 | .number_ext.'.ras']);....else... |
f7a0 | 20 20 20 20 49 69 20 3d 20 64 6f 75 62 6c 65 28 69 6d 72 65 61 64 28 5b 63 61 6c 69 62 5f 6e 61 | ....Ii.=.double(imread([calib_na |
f7c0 | 6d 65 20 20 6e 75 6d 62 65 72 5f 65 78 74 20 27 2e 27 20 66 6f 72 6d 61 74 5f 69 6d 61 67 65 5d | me..number_ext.'.'.format_image] |
f7e0 | 29 29 3b 0a 20 20 20 65 6e 64 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 69 66 20 73 69 7a 65 28 49 | ));....end;............if.size(I |
f800 | 69 2c 33 29 3e 31 2c 0a 20 20 20 20 20 20 49 69 20 3d 20 49 69 28 3a 2c 3a 2c 32 29 3b 0a 20 20 | i,3)>1,.......Ii.=.Ii(:,:,2);... |
f820 | 20 65 6e 64 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 49 5f 27 20 6e 75 6d 32 | .end;............eval(['I_'.num2 |
f840 | 73 74 72 28 69 29 20 27 20 3d 20 49 69 3b 27 5d 29 3b 0a 20 20 20 0a 65 6e 64 3b 0a 0a 0a 69 66 | str(i).'.=.Ii;']);.....end;...if |
f860 | 20 73 69 7a 65 28 49 5f 31 2c 31 29 7e 3d 34 38 30 2c 0a 20 20 20 73 6d 61 6c 6c 5f 63 61 6c 69 | .size(I_1,1)~=480,....small_cali |
f880 | 62 5f 69 6d 61 67 65 20 3d 20 31 3b 0a 65 6c 73 65 0a 20 20 20 73 6d 61 6c 6c 5f 63 61 6c 69 62 | b_image.=.1;.else....small_calib |
f8a0 | 5f 69 6d 61 67 65 20 3d 20 30 3b 0a 65 6e 64 3b 0a 20 20 20 0a 0a 5b 48 63 61 6c 2c 57 63 61 6c | _image.=.0;.end;......[Hcal,Wcal |
f8c0 | 5d 20 3d 20 73 69 7a 65 28 49 5f 31 29 3b 20 09 25 20 73 69 7a 65 20 6f 66 20 74 68 65 20 63 61 | ].=.size(I_1);..%.size.of.the.ca |
f8e0 | 6c 69 62 72 61 74 69 6f 6e 20 69 6d 61 67 65 0a 20 20 20 0a 63 6c 69 63 6b 6e 61 6d 65 20 3d 20 | libration.image.....clickname.=. |
f900 | 5b 5d 3b 0a 0a 6d 61 70 20 3d 20 67 72 61 79 28 32 35 36 29 3b 0a 0a 5b 6e 79 2c 6e 78 5d 20 3d | [];..map.=.gray(256);..[ny,nx].= |
f920 | 20 73 69 7a 65 28 49 5f 31 29 3b 0a 0a 0a 25 73 74 72 69 6e 67 5f 73 61 76 65 20 3d 20 27 73 61 | .size(I_1);...%string_save.=.'sa |
f940 | 76 65 20 63 61 6c 69 62 5f 64 61 74 61 20 6e 5f 69 6d 61 20 74 79 70 65 5f 6e 75 6d 62 65 72 69 | ve.calib_data.n_ima.type_numberi |
f960 | 6e 67 20 4e 5f 73 6c 6f 74 73 20 69 6d 61 67 65 5f 6e 75 6d 62 65 72 73 20 66 6f 72 6d 61 74 5f | ng.N_slots.image_numbers.format_ |
f980 | 69 6d 61 67 65 20 63 61 6c 69 62 5f 6e 61 6d 65 20 48 63 61 6c 20 57 63 61 6c 20 6e 78 20 6e 79 | image.calib_name.Hcal.Wcal.nx.ny |
f9a0 | 20 6d 61 70 20 73 6d 61 6c 6c 5f 63 61 6c 69 62 5f 69 6d 61 67 65 27 3b 0a 0a 25 65 76 61 6c 28 | .map.small_calib_image';..%eval( |
f9c0 | 73 74 72 69 6e 67 5f 73 61 76 65 29 3b 0a 0a 25 64 69 73 70 28 27 64 6f 6e 65 27 29 3b 0a 63 6c | string_save);..%disp('done');.cl |
f9e0 | 69 63 6b 5f 63 61 6c 69 62 3b 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ick_calib;...................... |
fa00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 4d 75 6c 74 69 5f 43 61 6c 69 62 5f 6f 75 6c 75 2e 6d | TOOLBOX_calib/Multi_Calib_oulu.m |
fa20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fa40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fa60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
fa80 | 20 20 20 20 32 33 32 20 20 36 37 36 33 30 37 30 32 33 30 20 20 31 32 30 30 30 00 20 00 00 00 00 | ....232..6763070230..12000...... |
faa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fb00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fb20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fb40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fb60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fb80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fbc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fbe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fc00 | 0a 25 20 65 6e 74 65 72 20 69 6d 61 67 65 20 6e 61 6d 65 73 2c 20 6e 75 6d 62 65 72 73 2c 20 2e | .%.enter.image.names,.numbers,.. |
fc20 | 2e 2e 0a 64 61 74 61 5f 63 61 6c 69 62 3b 0a 0a 25 72 65 61 64 20 69 6d 61 67 65 73 20 66 72 6f | ...data_calib;..%read.images.fro |
fc40 | 6d 20 66 69 6c 65 73 0a 69 6d 61 5f 72 65 61 64 5f 63 61 6c 69 62 3b 0a 0a 63 6c 69 63 6b 5f 63 | m.files.ima_read_calib;..click_c |
fc60 | 61 6c 69 62 3b 0a 0a 25 67 6f 5f 63 61 6c 69 62 3b 20 25 20 74 68 65 20 6f 72 69 67 69 6e 61 6c | alib;..%go_calib;.%.the.original |
fc80 | 20 76 65 72 73 69 6f 6e 0a 0a 67 6f 5f 63 61 6c 69 62 5f 6f 70 74 69 6d 3b 0a 00 00 00 00 00 00 | .version..go_calib_optim;....... |
fca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fcc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fd00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fd20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fd40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fd60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fd80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fdc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fde0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fe00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 6d 75 6c 74 69 5f 65 72 72 6f 72 5f 6f 75 6c 75 2e 6d | TOOLBOX_calib/multi_error_oulu.m |
fe20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fe40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fe60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
fe80 | 20 20 20 31 37 33 37 20 20 36 37 36 33 30 37 30 32 33 30 20 20 31 32 32 31 32 00 20 00 00 00 00 | ...1737..6763070230..12212...... |
fea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
fee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ff00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ff20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ff40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ff60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ff80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ffa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ffc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
ffe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10000 | 66 75 6e 63 74 69 6f 6e 20 65 78 20 3d 20 6d 75 6c 74 69 5f 65 72 72 6f 72 5f 6f 75 6c 75 28 70 | function.ex.=.multi_error_oulu(p |
10020 | 61 72 61 6d 2c 6e 5f 69 6d 61 2c 63 63 29 3b 0a 0a 67 6c 6f 62 61 6c 20 58 5f 31 20 78 5f 31 20 | aram,n_ima,cc);..global.X_1.x_1. |
10040 | 58 5f 32 20 78 5f 32 20 58 5f 33 20 78 5f 33 20 58 5f 34 20 78 5f 34 20 58 5f 35 20 78 5f 35 20 | X_2.x_2.X_3.x_3.X_4.x_4.X_5.x_5. |
10060 | 58 5f 36 20 78 5f 36 20 58 5f 37 20 78 5f 37 20 58 5f 38 20 78 5f 38 20 58 5f 39 20 78 5f 39 20 | X_6.x_6.X_7.x_7.X_8.x_8.X_9.x_9. |
10080 | 58 5f 31 30 20 78 5f 31 30 20 58 5f 31 31 20 78 5f 31 31 20 58 5f 31 32 20 78 5f 31 32 20 58 5f | X_10.x_10.X_11.x_11.X_12.x_12.X_ |
100a0 | 31 33 20 78 5f 31 33 20 58 5f 31 34 20 78 5f 31 34 20 58 5f 31 35 20 78 5f 31 35 20 58 5f 31 36 | 13.x_13.X_14.x_14.X_15.x_15.X_16 |
100c0 | 20 78 5f 31 36 20 58 5f 31 37 20 78 5f 31 37 20 58 5f 31 38 20 78 5f 31 38 20 58 5f 31 39 20 78 | .x_16.X_17.x_17.X_18.x_18.X_19.x |
100e0 | 5f 31 39 20 58 5f 32 30 20 78 5f 32 30 20 58 5f 32 31 20 78 5f 32 31 20 58 5f 32 32 20 78 5f 32 | _19.X_20.x_20.X_21.x_21.X_22.x_2 |
10100 | 32 20 58 5f 32 33 20 78 5f 32 33 20 58 5f 32 34 20 78 5f 32 34 20 58 5f 32 35 20 78 5f 32 35 20 | 2.X_23.x_23.X_24.x_24.X_25.x_25. |
10120 | 58 5f 32 36 20 78 5f 32 36 20 58 5f 32 37 20 78 5f 32 37 20 58 5f 32 38 20 78 5f 32 38 20 58 5f | X_26.x_26.X_27.x_27.X_28.x_28.X_ |
10140 | 32 39 20 78 5f 32 39 20 58 5f 33 30 20 78 5f 33 30 0a 0a 66 63 20 3d 20 70 61 72 61 6d 28 31 3a | 29.x_29.X_30.x_30..fc.=.param(1: |
10160 | 32 29 3b 0a 6b 63 20 3d 20 70 61 72 61 6d 28 33 3a 36 29 3b 0a 25 70 70 63 20 3d 20 70 61 72 61 | 2);.kc.=.param(3:6);.%ppc.=.para |
10180 | 6d 28 35 3a 36 29 3b 0a 0a 69 66 20 6c 65 6e 67 74 68 28 70 61 72 61 6d 29 20 3e 20 36 2a 6e 5f | m(5:6);..if.length(param).>.6*n_ |
101a0 | 69 6d 61 20 2b 20 33 20 2b 20 33 2c 0a 20 20 20 0a 20 20 20 63 63 20 3d 20 70 61 72 61 6d 28 36 | ima.+.3.+.3,........cc.=.param(6 |
101c0 | 2a 6e 5f 69 6d 61 20 2b 20 34 20 2b 20 33 3a 36 2a 6e 5f 69 6d 61 20 2b 20 35 20 2b 20 33 29 3b | *n_ima.+.4.+.3:6*n_ima.+.5.+.3); |
101e0 | 0a 20 20 20 0a 20 20 20 69 66 20 6c 65 6e 67 74 68 28 70 61 72 61 6d 29 20 3e 20 36 2a 6e 5f 69 | ........if.length(param).>.6*n_i |
10200 | 6d 61 20 2b 20 35 20 2b 20 33 2c 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 63 5f 64 20 3d 20 70 | ma.+.5.+.3,..............c_d.=.p |
10220 | 61 72 61 6d 28 36 2a 6e 5f 69 6d 61 20 2b 20 36 20 2b 20 33 20 3a 36 2a 6e 5f 69 6d 61 20 2b 20 | aram(6*n_ima.+.6.+.3.:6*n_ima.+. |
10240 | 37 20 2b 20 33 29 3b 0a 20 20 20 20 20 20 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 0a 20 20 | 7.+.3);...........else.......... |
10260 | 20 20 20 20 63 5f 64 20 3d 20 5b 30 3b 30 5d 3b 0a 20 20 20 20 20 20 0a 20 20 20 65 6e 64 3b 0a | ....c_d.=.[0;0];...........end;. |
10280 | 20 20 20 0a 65 6c 73 65 0a 20 20 20 0a 20 20 20 63 5f 64 20 3d 20 5b 30 3b 30 5d 3b 0a 0a 65 6e | ....else........c_d.=.[0;0];..en |
102a0 | 64 3b 0a 0a 0a 0a 65 78 20 3d 20 5b 5d 3b 0a 0a 25 6b 65 79 62 6f 61 72 64 3b 0a 0a 66 6f 72 20 | d;....ex.=.[];..%keyboard;..for. |
102c0 | 6b 6b 20 3d 20 31 3a 6e 5f 69 6d 61 2c 0a 20 20 20 0a 20 20 20 6f 6d 63 6b 6b 20 3d 20 70 61 72 | kk.=.1:n_ima,........omckk.=.par |
102e0 | 61 6d 28 34 2b 36 2a 28 6b 6b 2d 31 29 20 2b 20 33 3a 36 2a 6b 6b 20 2b 20 33 29 3b 0a 20 20 20 | am(4+6*(kk-1).+.3:6*kk.+.3);.... |
10300 | 0a 20 20 20 54 63 6b 6b 20 3d 20 70 61 72 61 6d 28 36 2a 6b 6b 2b 31 20 2b 20 33 3a 36 2a 6b 6b | ....Tckk.=.param(6*kk+1.+.3:6*kk |
10320 | 2b 33 20 2b 20 33 29 3b 0a 0a 20 20 20 52 6b 6b 20 3d 20 72 6f 64 72 69 67 75 65 73 28 6f 6d 63 | +3.+.3);.....Rkk.=.rodrigues(omc |
10340 | 6b 6b 29 3b 0a 0a 20 20 20 65 76 61 6c 28 5b 27 79 6b 6b 20 3d 20 70 72 6f 6a 65 63 74 32 5f 6f | kk);.....eval(['ykk.=.project2_o |
10360 | 75 6c 75 28 58 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 2c 52 6b 6b 2c 54 63 6b 6b 2c 66 | ulu(X_'.num2str(kk).',Rkk,Tckk,f |
10380 | 63 2c 63 63 2c 6b 63 29 3b 27 5d 29 3b 0a 20 20 20 0a 20 20 20 65 76 61 6c 28 5b 27 65 78 6b 6b | c,cc,kc);']);........eval(['exkk |
103a0 | 20 3d 20 78 5f 27 20 6e 75 6d 32 73 74 72 28 6b 6b 29 20 27 20 2d 79 6b 6b 3b 27 5d 29 3b 0a 0a | .=.x_'.num2str(kk).'.-ykk;']);.. |
103c0 | 20 20 20 65 78 20 3d 20 5b 65 78 3b 65 78 6b 6b 28 3a 29 5d 3b 0a 20 20 20 0a 65 6e 64 3b 0a 00 | ...ex.=.[ex;exkk(:)];.....end;.. |
103e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10400 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 70 72 6f 6a 65 63 74 32 5f 6f 75 6c 75 2e 6d 00 00 00 | TOOLBOX_calib/project2_oulu.m... |
10420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10460 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
10480 | 20 20 20 32 30 32 33 20 20 36 37 36 33 30 37 30 32 33 31 20 20 31 31 33 36 35 00 20 00 00 00 00 | ...2023..6763070231..11365...... |
104a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
104c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
104e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
105a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
105c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
105e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10600 | 66 75 6e 63 74 69 6f 6e 20 5b 78 5d 20 3d 20 70 72 6f 6a 65 63 74 32 5f 6f 75 6c 75 28 58 2c 52 | function.[x].=.project2_oulu(X,R |
10620 | 2c 54 2c 66 2c 74 2c 6b 29 0a 25 50 52 4f 4a 45 43 54 20 20 20 20 20 53 75 62 73 69 64 69 61 72 | ,T,f,t,k).%PROJECT.....Subsidiar |
10640 | 79 20 74 6f 20 63 61 6c 69 62 0a 0a 25 20 20 20 20 20 20 20 20 20 28 63 29 20 50 69 65 74 72 6f | y.to.calib..%.........(c).Pietro |
10660 | 20 50 65 72 6f 6e 61 20 2d 2d 20 4d 61 72 63 68 20 32 34 2c 20 31 39 39 34 0a 25 20 20 20 20 20 | .Perona.--.March.24,.1994.%..... |
10680 | 20 20 20 20 43 61 6c 69 66 6f 72 6e 69 61 20 49 6e 73 74 69 74 75 74 65 20 6f 66 20 54 65 63 68 | ....California.Institute.of.Tech |
106a0 | 6e 6f 6c 6f 67 79 0a 25 20 20 20 20 20 20 20 20 20 50 61 73 61 64 65 6e 61 2c 20 43 41 0a 25 20 | nology.%.........Pasadena,.CA.%. |
106c0 | 20 20 20 20 20 20 20 20 0a 25 20 20 20 20 20 20 20 20 20 52 65 6e 61 6d 65 64 20 62 65 63 61 75 | .........%.........Renamed.becau |
106e0 | 73 65 20 70 72 6f 6a 65 63 74 20 65 78 69 73 74 73 20 69 6e 20 6d 61 74 6c 61 62 20 35 2e 32 21 | se.project.exists.in.matlab.5.2! |
10700 | 21 21 0a 25 20 20 20 20 20 20 20 20 20 4e 6f 77 20 75 73 65 73 20 74 68 65 20 6d 6f 72 65 20 65 | !!.%.........Now.uses.the.more.e |
10720 | 6c 61 62 6f 72 61 74 65 20 69 6e 74 72 69 6e 73 69 63 20 6d 6f 64 65 6c 20 66 72 6f 6d 20 4f 75 | laborate.intrinsic.model.from.Ou |
10740 | 6c 75 0a 0a 0a 0a 5b 6d 2c 6e 5d 20 3d 20 73 69 7a 65 28 58 29 3b 0a 0a 59 20 3d 20 52 2a 58 20 | lu....[m,n].=.size(X);..Y.=.R*X. |
10760 | 2b 20 54 2a 6f 6e 65 73 28 31 2c 6e 29 3b 0a 5a 20 3d 20 59 28 33 2c 3a 29 3b 0a 0a 66 20 3d 20 | +.T*ones(1,n);.Z.=.Y(3,:);..f.=. |
10780 | 66 28 3a 29 3b 20 25 25 20 6d 61 6b 65 20 61 20 63 6f 6c 75 6d 6e 20 76 65 63 74 6f 72 0a 69 66 | f(:);.%%.make.a.column.vector.if |
107a0 | 20 6c 65 6e 67 74 68 28 66 29 3d 3d 31 2c 0a 20 20 20 66 20 3d 20 5b 66 20 66 5d 27 3b 0a 65 6e | .length(f)==1,....f.=.[f.f]';.en |
107c0 | 64 3b 0a 0a 78 20 3d 20 28 59 28 31 3a 32 2c 3a 29 20 2e 2f 20 28 6f 6e 65 73 28 32 2c 31 29 20 | d;..x.=.(Y(1:2,:)../.(ones(2,1). |
107e0 | 2a 20 5a 29 29 20 3b 0a 0a 0a 72 61 64 69 75 73 5f 32 20 3d 20 78 28 31 2c 3a 29 2e 5e 32 20 2b | *.Z)).;...radius_2.=.x(1,:).^2.+ |
10800 | 20 78 28 32 2c 3a 29 2e 5e 32 3b 0a 0a 69 66 20 6c 65 6e 67 74 68 28 6b 29 20 3e 20 31 2c 0a 0a | .x(2,:).^2;..if.length(k).>.1,.. |
10820 | 20 20 20 72 61 64 69 61 6c 5f 64 69 73 74 6f 72 74 69 6f 6e 20 3d 20 31 20 2b 20 6f 6e 65 73 28 | ...radial_distortion.=.1.+.ones( |
10840 | 32 2c 31 29 20 2a 20 28 28 6b 28 31 29 20 2a 20 72 61 64 69 75 73 5f 32 29 20 2b 20 28 6b 28 32 | 2,1).*.((k(1).*.radius_2).+.(k(2 |
10860 | 29 20 2a 20 72 61 64 69 75 73 5f 32 2e 5e 32 29 29 3b 0a 20 20 20 0a 20 20 20 69 66 20 6c 65 6e | ).*.radius_2.^2));........if.len |
10880 | 67 74 68 28 6b 29 20 3c 20 34 2c 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 64 65 6c 74 61 5f 78 | gth(k).<.4,..............delta_x |
108a0 | 20 3d 20 7a 65 72 6f 73 28 32 2c 6e 29 3b 20 0a 20 20 20 20 20 20 0a 20 20 20 65 6c 73 65 0a 20 | .=.zeros(2,n);............else.. |
108c0 | 20 20 0a 20 20 20 20 20 20 64 65 6c 74 61 5f 78 20 3d 20 5b 32 2a 6b 28 33 29 2a 78 28 31 2c 3a | .........delta_x.=.[2*k(3)*x(1,: |
108e0 | 29 2e 2a 78 28 32 2c 3a 29 20 2b 20 6b 28 34 29 2a 28 72 61 64 69 75 73 5f 32 20 2b 20 32 2a 78 | ).*x(2,:).+.k(4)*(radius_2.+.2*x |
10900 | 28 31 2c 3a 29 2e 5e 32 29 20 3b 0a 09 20 20 20 20 6b 28 33 29 20 2a 20 28 72 61 64 69 75 73 5f | (1,:).^2).;......k(3).*.(radius_ |
10920 | 32 20 2b 20 32 2a 78 28 32 2c 3a 29 2e 5e 32 29 2b 32 2a 6b 28 34 29 2a 78 28 31 2c 3a 29 2e 2a | 2.+.2*x(2,:).^2)+2*k(4)*x(1,:).* |
10940 | 78 28 32 2c 3a 29 5d 3b 0a 20 20 20 20 20 20 0a 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 0a 0a | x(2,:)];...........end;......... |
10960 | 65 6c 73 65 0a 20 20 20 0a 20 20 20 72 61 64 69 61 6c 5f 64 69 73 74 6f 72 74 69 6f 6e 20 3d 20 | else........radial_distortion.=. |
10980 | 31 20 2b 20 6f 6e 65 73 28 32 2c 31 29 20 2a 20 28 28 6b 28 31 29 20 2a 20 72 61 64 69 75 73 5f | 1.+.ones(2,1).*.((k(1).*.radius_ |
109a0 | 32 29 29 3b 0a 0a 20 20 20 64 65 6c 74 61 5f 78 20 3d 20 7a 65 72 6f 73 28 32 2c 6e 29 3b 0a 20 | 2));.....delta_x.=.zeros(2,n);.. |
109c0 | 20 20 0a 65 6e 64 3b 0a 0a 0a 78 20 3d 20 28 78 20 2e 2a 20 72 61 64 69 61 6c 5f 64 69 73 74 6f | ...end;...x.=.(x..*.radial_disto |
109e0 | 72 74 69 6f 6e 20 2b 20 64 65 6c 74 61 5f 78 29 2e 2a 20 28 66 20 2a 20 6f 6e 65 73 28 31 2c 6e | rtion.+.delta_x).*.(f.*.ones(1,n |
10a00 | 29 29 20 20 2b 20 74 2a 6f 6e 65 73 28 31 2c 6e 29 3b 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 | ))..+.t*ones(1,n);.............. |
10a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10c00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 70 72 6f 6a 65 63 74 65 64 47 72 69 64 2e 6d 00 00 00 | TOOLBOX_calib/projectedGrid.m... |
10c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10c60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
10c80 | 20 20 20 20 37 31 34 20 20 36 37 36 33 30 37 30 32 33 31 20 20 31 31 33 34 33 00 20 00 00 00 00 | ....714..6763070231..11343...... |
10ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
10e00 | 66 75 6e 63 74 69 6f 6e 20 5b 58 58 2c 48 5d 20 3d 20 70 72 6f 6a 65 63 74 65 64 47 72 69 64 20 | function.[XX,H].=.projectedGrid. |
10e20 | 28 20 50 31 2c 20 50 32 2c 20 50 33 2c 20 50 34 20 2c 20 6e 78 2c 20 6e 79 29 3b 0a 0a 25 20 6e | (.P1,.P2,.P3,.P4.,.nx,.ny);..%.n |
10e40 | 65 77 20 66 6f 72 6d 61 6c 69 73 6d 20 75 73 69 6e 67 20 68 6f 6d 6f 67 72 61 70 68 69 65 73 0a | ew.formalism.using.homographies. |
10e60 | 0a 61 30 30 20 3d 20 5b 50 31 3b 31 5d 3b 0a 61 31 30 20 3d 20 5b 50 32 3b 31 5d 3b 0a 61 31 31 | .a00.=.[P1;1];.a10.=.[P2;1];.a11 |
10e80 | 20 3d 20 5b 50 33 3b 31 5d 3b 0a 61 30 31 20 3d 20 5b 50 34 3b 31 5d 3b 0a 0a 25 20 43 6f 6d 70 | .=.[P3;1];.a01.=.[P4;1];..%.Comp |
10ea0 | 75 74 65 20 74 68 65 20 70 6c 61 6e 61 72 74 20 63 6f 6c 6c 69 6e 65 61 74 69 6f 6e 3a 0a 0a 5b | ute.the.planart.collineation:..[ |
10ec0 | 48 5d 20 3d 20 63 6f 6d 70 75 74 65 5f 63 6f 6c 6c 69 6e 65 61 74 69 6f 6e 20 28 61 30 30 2c 20 | H].=.compute_collineation.(a00,. |
10ee0 | 61 31 30 2c 20 61 31 31 2c 20 61 30 31 29 3b 0a 0a 0a 25 20 42 75 69 6c 64 20 74 68 65 20 67 72 | a10,.a11,.a01);...%.Build.the.gr |
10f00 | 69 64 20 75 73 69 6e 67 20 74 68 65 20 70 6c 61 6e 61 72 20 63 6f 6c 6c 69 6e 65 61 74 69 6f 6e | id.using.the.planar.collineation |
10f20 | 3a 0a 0a 78 5f 6c 20 3d 20 28 28 30 3a 28 6e 78 2d 31 29 29 27 2a 6f 6e 65 73 28 31 2c 6e 79 29 | :..x_l.=.((0:(nx-1))'*ones(1,ny) |
10f40 | 29 2f 28 6e 78 2d 31 29 3b 0a 79 5f 6c 20 3d 20 28 6f 6e 65 73 28 6e 78 2c 31 29 2a 28 30 3a 28 | )/(nx-1);.y_l.=.(ones(nx,1)*(0:( |
10f60 | 6e 79 2d 31 29 29 29 2f 28 6e 79 2d 31 29 3b 0a 0a 70 74 73 20 3d 20 5b 78 5f 6c 28 3a 29 20 79 | ny-1)))/(ny-1);..pts.=.[x_l(:).y |
10f80 | 5f 6c 28 3a 29 20 6f 6e 65 73 28 6e 78 2a 6e 79 2c 31 29 5d 27 3b 0a 0a 58 58 20 3d 20 48 2a 70 | _l(:).ones(nx*ny,1)]';..XX.=.H*p |
10fa0 | 74 73 3b 0a 0a 58 58 20 3d 20 58 58 28 31 3a 32 2c 3a 29 20 2e 2f 20 28 6f 6e 65 73 28 32 2c 31 | ts;..XX.=.XX(1:2,:)../.(ones(2,1 |
10fc0 | 29 2a 58 58 28 33 2c 3a 29 29 3b 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | )*XX(3,:));..................... |
10fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11000 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 72 65 61 64 72 61 73 2e 6d 00 00 00 00 00 00 00 00 00 | TOOLBOX_calib/readras.m......... |
11020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11060 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
11080 | 20 20 20 35 33 36 34 20 20 36 37 36 33 30 37 30 32 33 32 20 20 31 30 32 32 36 00 20 00 00 00 00 | ...5364..6763070232..10226...... |
110a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
110c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
110e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
111a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
111c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
111e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11200 | 66 75 6e 63 74 69 6f 6e 20 5b 58 2c 20 6d 61 70 5d 20 3d 20 72 65 61 64 72 61 73 28 66 69 6c 65 | function.[X,.map].=.readras(file |
11220 | 6e 61 6d 65 2c 20 79 73 2c 20 79 65 2c 20 78 73 2c 20 78 65 29 3b 0a 25 52 45 41 44 52 41 53 20 | name,.ys,.ye,.xs,.xe);.%READRAS. |
11240 | 52 65 61 64 20 61 6e 20 69 6d 61 67 65 20 66 69 6c 65 20 69 6e 20 73 75 6e 20 72 61 73 74 65 72 | Read.an.image.file.in.sun.raster |
11260 | 20 66 6f 72 6d 61 74 2e 0a 25 20 09 20 52 45 41 44 52 41 53 28 27 69 6d 61 67 65 66 69 6c 65 2e | .format..%...READRAS('imagefile. |
11280 | 72 61 73 27 29 20 72 65 61 64 73 20 61 20 22 73 75 6e 2e 72 61 73 74 65 72 22 20 69 6d 61 67 65 | ras').reads.a."sun.raster".image |
112a0 | 20 66 69 6c 65 2e 0a 25 09 20 5b 58 2c 20 6d 61 70 5d 20 3d 20 52 45 41 44 52 41 53 28 27 69 6d | .file..%..[X,.map].=.READRAS('im |
112c0 | 61 67 65 66 69 6c 65 2e 72 61 73 27 29 20 72 65 74 75 72 6e 73 20 62 6f 74 68 20 74 68 65 20 69 | agefile.ras').returns.both.the.i |
112e0 | 6d 61 67 65 20 61 6e 64 20 61 20 0a 25 09 20 63 6f 6c 6f 72 20 6d 61 70 2c 20 73 6f 20 74 68 61 | mage.and.a..%..color.map,.so.tha |
11300 | 74 0a 25 09 09 5b 58 2c 20 6d 61 70 5d 20 3d 20 72 65 61 64 72 61 73 28 27 69 6d 61 67 65 66 69 | t.%..[X,.map].=.readras('imagefi |
11320 | 6c 65 2e 72 61 73 27 29 3b 0a 25 09 09 69 6d 61 67 65 28 58 29 20 0a 25 09 09 63 6f 6c 6f 72 6d | le.ras');.%..image(X)..%..colorm |
11340 | 61 70 28 6d 61 70 29 0a 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 78 69 73 28 27 65 71 | ap(map).%...............axis('eq |
11360 | 75 61 6c 27 29 0a 25 09 20 77 69 6c 6c 20 64 69 73 70 6c 61 79 20 74 68 65 20 72 65 73 75 6c 74 | ual').%..will.display.the.result |
11380 | 20 77 69 74 68 20 74 68 65 20 70 72 6f 70 65 72 20 63 6f 6c 6f 72 73 2e 0a 25 09 20 4e 4f 54 45 | .with.the.proper.colors..%..NOTE |
113a0 | 3a 20 72 65 61 64 72 61 73 20 63 61 6e 6e 6f 74 20 64 65 61 6c 20 77 69 74 68 20 63 6f 6d 70 6c | :.readras.cannot.deal.with.compl |
113c0 | 69 63 61 74 65 64 20 63 6f 6c 6f 72 20 6d 61 70 73 2e 20 20 0a 25 09 20 20 20 20 20 20 20 49 6e | icated.color.maps....%........In |
113e0 | 20 66 61 63 74 2c 20 4d 61 74 6c 61 62 20 64 6f 65 73 6e 27 74 20 71 75 69 74 65 20 61 6c 6c 6f | .fact,.Matlab.doesn't.quite.allo |
11400 | 77 20 74 6f 20 77 6f 72 6b 20 77 69 74 68 20 63 6f 6c 6f 72 6d 61 70 73 0a 25 09 20 20 20 20 20 | w.to.work.with.colormaps.%...... |
11420 | 20 20 77 69 74 68 20 6d 6f 72 65 20 74 68 61 6e 20 36 34 20 65 6e 74 72 69 65 73 2e 0a 25 0a 0a | ..with.more.than.64.entries..%.. |
11440 | 25 25 0a 25 25 09 20 28 43 29 20 54 68 6f 6d 61 73 20 4b 2e 20 4c 65 75 6e 67 20 33 2f 33 30 2f | %%.%%..(C).Thomas.K..Leung.3/30/ |
11460 | 39 33 2e 0a 25 25 09 20 43 61 6c 69 66 6f 72 6e 69 61 20 49 6e 73 74 69 74 75 74 65 20 6f 66 20 | 93..%%..California.Institute.of. |
11480 | 54 65 63 68 6e 6f 6c 6f 67 79 2e 0a 25 25 09 20 4d 6f 64 69 66 69 65 64 20 62 79 20 41 6e 64 72 | Technology..%%..Modified.by.Andr |
114a0 | 65 61 20 4d 65 6e 6e 75 63 63 69 20 74 6f 20 64 65 61 6c 20 77 69 74 68 20 63 6f 6c 6f 72 20 69 | ea.Mennucci.to.deal.with.color.i |
114c0 | 6d 61 67 65 73 0a 25 25 0a 0a 25 20 50 43 20 61 6e 64 20 55 4e 49 58 20 76 65 72 73 69 6f 6e 20 | mages.%%..%.PC.and.UNIX.version. |
114e0 | 6f 66 20 72 65 61 64 72 61 73 20 2d 20 4a 65 61 6e 2d 59 76 65 73 20 42 6f 75 67 75 65 74 20 2d | of.readras.-.Jean-Yves.Bouguet.- |
11500 | 20 44 65 63 2e 20 31 39 39 38 0a 0a 64 6f 74 20 3d 20 6d 61 78 28 66 69 6e 64 28 66 69 6c 65 6e | .Dec..1998..dot.=.max(find(filen |
11520 | 61 6d 65 20 3d 3d 20 27 2e 27 29 29 3b 0a 73 75 66 66 69 78 20 3d 20 66 69 6c 65 6e 61 6d 65 28 | ame.==.'.'));.suffix.=.filename( |
11540 | 64 6f 74 2b 31 3a 64 6f 74 2b 33 29 3b 0a 0a 69 66 28 73 74 72 63 6d 70 28 73 75 66 66 69 78 2c | dot+1:dot+3);..if(strcmp(suffix, |
11560 | 20 27 72 61 73 27 29 29 09 09 09 25 20 72 61 73 74 65 72 20 66 69 6c 65 20 66 6f 72 6d 61 74 20 | .'ras'))...%.raster.file.format. |
11580 | 25 0a 09 66 70 20 3d 20 66 6f 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 27 72 62 27 29 3b 0a 09 | %..fp.=.fopen(filename,.'rb');.. |
115a0 | 69 66 28 66 70 3c 30 29 20 65 72 72 6f 72 28 5b 27 43 61 6e 6e 6f 74 20 6f 70 65 6e 20 27 20 66 | if(fp<0).error(['Cannot.open.'.f |
115c0 | 69 6c 65 6e 61 6d 65 20 27 2e 27 5d 29 2c 20 65 6e 64 0a 0a 09 25 52 65 61 64 20 61 6e 64 20 63 | ilename.'.']),.end...%Read.and.c |
115e0 | 72 61 63 6b 20 74 68 65 20 33 32 2d 62 79 74 65 20 68 65 61 64 65 72 0a 09 66 73 65 65 6b 28 66 | rack.the.32-byte.header..fseek(f |
11600 | 70 2c 20 34 2c 20 2d 31 29 3b 20 20 0a 0a 09 77 69 64 74 68 20 09 3d 20 32 5e 32 34 20 2a 20 66 | p,.4,.-1);.....width..=.2^24.*.f |
11620 | 72 65 61 64 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 31 36 20 2a 20 66 72 | read(fp,.1,.'uchar').+.2^16.*.fr |
11640 | 65 61 64 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 38 20 2a 20 66 72 65 61 | ead(fp,.1,.'uchar').+.2^8.*.frea |
11660 | 64 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 66 72 65 61 64 28 66 70 2c 20 31 2c | d(fp,.1,.'uchar').+.fread(fp,.1, |
11680 | 20 27 75 63 68 61 72 27 29 3b 0a 0a 09 68 65 69 67 68 74 20 09 3d 20 32 5e 32 34 20 2a 20 66 72 | .'uchar');...height..=.2^24.*.fr |
116a0 | 65 61 64 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 31 36 20 2a 20 66 72 65 | ead(fp,.1,.'uchar').+.2^16.*.fre |
116c0 | 61 64 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 38 20 2a 20 66 72 65 61 64 | ad(fp,.1,.'uchar').+.2^8.*.fread |
116e0 | 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 66 72 65 61 64 28 66 70 2c 20 31 2c 20 | (fp,.1,.'uchar').+.fread(fp,.1,. |
11700 | 27 75 63 68 61 72 27 29 3b 0a 0a 09 64 65 70 74 68 20 20 09 3d 20 32 5e 32 34 20 2a 20 66 72 65 | 'uchar');...depth...=.2^24.*.fre |
11720 | 61 64 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 31 36 20 2a 20 66 72 65 61 | ad(fp,.1,.'uchar').+.2^16.*.frea |
11740 | 64 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 38 20 2a 20 66 72 65 61 64 28 | d(fp,.1,.'uchar').+.2^8.*.fread( |
11760 | 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 66 72 65 61 64 28 66 70 2c 20 31 2c 20 27 | fp,.1,.'uchar').+.fread(fp,.1,.' |
11780 | 75 63 68 61 72 27 29 3b 0a 0a 09 6c 65 6e 67 74 68 20 09 3d 20 32 5e 32 34 20 2a 20 66 72 65 61 | uchar');...length..=.2^24.*.frea |
117a0 | 64 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 31 36 20 2a 20 66 72 65 61 64 | d(fp,.1,.'uchar').+.2^16.*.fread |
117c0 | 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 38 20 2a 20 66 72 65 61 64 28 66 | (fp,.1,.'uchar').+.2^8.*.fread(f |
117e0 | 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 66 72 65 61 64 28 66 70 2c 20 31 2c 20 27 75 | p,.1,.'uchar').+.fread(fp,.1,.'u |
11800 | 63 68 61 72 27 29 3b 0a 0a 09 74 79 70 65 20 20 20 09 3d 20 32 5e 32 34 20 2a 20 66 72 65 61 64 | char');...type....=.2^24.*.fread |
11820 | 28 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 31 36 20 2a 20 66 72 65 61 64 28 | (fp,.1,.'uchar').+.2^16.*.fread( |
11840 | 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 38 20 2a 20 66 72 65 61 64 28 66 70 | fp,.1,.'uchar').+.2^8.*.fread(fp |
11860 | 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 66 72 65 61 64 28 66 70 2c 20 31 2c 20 27 75 63 | ,.1,.'uchar').+.fread(fp,.1,.'uc |
11880 | 68 61 72 27 29 3b 0a 0a 09 6d 61 70 74 79 70 65 20 3d 20 32 5e 32 34 20 2a 20 66 72 65 61 64 28 | har');...maptype.=.2^24.*.fread( |
118a0 | 66 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 31 36 20 2a 20 66 72 65 61 64 28 66 | fp,.1,.'uchar').+.2^16.*.fread(f |
118c0 | 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 38 20 2a 20 66 72 65 61 64 28 66 70 2c | p,.1,.'uchar').+.2^8.*.fread(fp, |
118e0 | 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 66 72 65 61 64 28 66 70 2c 20 31 2c 20 27 75 63 68 | .1,.'uchar').+.fread(fp,.1,.'uch |
11900 | 61 72 27 29 3b 0a 0a 09 6d 61 70 6c 65 6e 20 20 3d 20 32 5e 32 34 20 2a 20 66 72 65 61 64 28 66 | ar');...maplen..=.2^24.*.fread(f |
11920 | 70 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 31 36 20 2a 20 66 72 65 61 64 28 66 70 | p,.1,.'uchar').+.2^16.*.fread(fp |
11940 | 2c 20 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 32 5e 38 20 2a 20 66 72 65 61 64 28 66 70 2c 20 | ,.1,.'uchar').+.2^8.*.fread(fp,. |
11960 | 31 2c 20 27 75 63 68 61 72 27 29 20 2b 20 66 72 65 61 64 28 66 70 2c 20 31 2c 20 27 75 63 68 61 | 1,.'uchar').+.fread(fp,.1,.'ucha |
11980 | 72 27 29 3b 0a 0a 09 6d 61 70 6c 65 6e 20 3d 20 6d 61 70 6c 65 6e 20 2f 20 33 3b 0a 0a 09 69 66 | r');...maplen.=.maplen./.3;...if |
119a0 | 20 6d 61 70 74 79 70 65 20 3d 3d 20 32 09 09 09 09 09 25 20 52 4d 54 5f 52 41 57 0a 09 09 6d 61 | .maptype.==.2.....%.RMT_RAW...ma |
119c0 | 70 20 3d 20 66 72 65 61 64 28 66 70 2c 20 5b 6d 61 70 6c 65 6e 2c 20 33 5d 2c 20 27 75 63 68 61 | p.=.fread(fp,.[maplen,.3],.'ucha |
119e0 | 72 27 29 2f 32 35 35 3b 0a 25 09 09 69 66 20 6d 61 70 6c 65 6e 3c 36 34 2c 20 6d 61 70 3d 5b 6d | r')/255;.%..if.maplen<64,.map=[m |
11a00 | 61 70 27 2c 7a 65 72 6f 73 28 33 2c 36 34 2d 6d 61 70 6c 65 6e 29 5d 27 3b 6d 61 70 6c 65 6e 3d | ap',zeros(3,64-maplen)]';maplen= |
11a20 | 36 34 3b 20 65 6e 64 3b 0a 09 65 6c 73 65 69 66 20 6d 61 70 74 79 70 65 20 3d 3d 20 31 09 09 09 | 64;.end;..elseif.maptype.==.1... |
11a40 | 09 25 20 52 4d 54 5f 45 51 55 41 4c 5f 52 47 42 0a 09 09 6d 61 70 28 3a 2c 31 29 20 3d 20 66 72 | .%.RMT_EQUAL_RGB...map(:,1).=.fr |
11a60 | 65 61 64 28 66 70 2c 20 5b 6d 61 70 6c 65 6e 5d 2c 20 27 75 63 68 61 72 27 29 3b 0a 09 09 6d 61 | ead(fp,.[maplen],.'uchar');...ma |
11a80 | 70 28 3a 2c 32 29 20 3d 20 66 72 65 61 64 28 66 70 2c 20 5b 6d 61 70 6c 65 6e 5d 2c 20 27 75 63 | p(:,2).=.fread(fp,.[maplen],.'uc |
11aa0 | 68 61 72 27 29 3b 0a 09 09 6d 61 70 28 3a 2c 33 29 20 3d 20 66 72 65 61 64 28 66 70 2c 20 5b 6d | har');...map(:,3).=.fread(fp,.[m |
11ac0 | 61 70 6c 65 6e 5d 2c 20 27 75 63 68 61 72 27 29 3b 0a 09 09 25 6d 61 78 6d 61 70 20 3d 20 6d 61 | aplen],.'uchar');...%maxmap.=.ma |
11ae0 | 78 28 6d 61 78 28 6d 61 70 29 29 3b 0a 09 09 6d 61 70 20 3d 20 6d 61 70 2f 32 35 35 3b 0a 09 20 | x(max(map));...map.=.map/255;... |
11b00 | 20 20 20 20 20 20 20 69 66 20 6d 61 70 6c 65 6e 3c 36 34 2c 20 6d 61 70 3d 5b 6d 61 70 27 2c 7a | .......if.maplen<64,.map=[map',z |
11b20 | 65 72 6f 73 28 33 2c 36 34 2d 6d 61 70 6c 65 6e 29 5d 27 3b 20 6d 61 70 6c 65 6e 3d 36 34 3b 20 | eros(3,64-maplen)]';.maplen=64;. |
11b40 | 65 6e 64 3b 0a 09 65 6c 73 65 20 09 09 09 09 09 09 25 20 52 4d 54 5f 4e 4f 4e 45 0a 09 09 6d 61 | end;..else.......%.RMT_NONE...ma |
11b60 | 70 20 3d 20 5b 5d 3b 0a 09 65 6e 64 0a 25 09 69 66 20 6d 61 70 6c 65 6e 3e 36 34 2c 0a 25 20 20 | p.=.[];..end.%.if.maplen>64,.%.. |
11b80 | 20 20 20 20 20 20 20 20 20 20 6d 61 70 3d 5b 6d 61 70 27 2c 7a 65 72 6f 73 28 33 2c 32 35 36 2d | ..........map=[map',zeros(3,256- |
11ba0 | 6d 61 70 6c 65 6e 29 5d 27 3b 0a 25 09 65 6e 64 3b 0a 0a 09 25 20 52 65 61 64 20 74 68 65 20 69 | maplen)]';.%.end;...%.Read.the.i |
11bc0 | 6d 61 67 65 0a 0a 09 69 66 20 72 65 6d 28 77 69 64 74 68 2c 32 29 20 3d 3d 20 31 0a 09 09 58 74 | mage...if.rem(width,2).==.1...Xt |
11be0 | 20 3d 20 66 72 65 61 64 28 66 70 2c 20 5b 77 69 64 74 68 2b 31 2c 20 68 65 69 67 68 74 5d 2c 20 | .=.fread(fp,.[width+1,.height],. |
11c00 | 27 75 63 68 61 72 27 29 3b 0a 09 09 58 20 3d 20 58 74 28 31 3a 77 69 64 74 68 2c 20 3a 29 27 3b | 'uchar');...X.=.Xt(1:width,.:)'; |
11c20 | 0a 09 65 6c 73 65 0a 09 09 58 74 20 3d 20 66 72 65 61 64 28 66 70 2c 20 5b 77 69 64 74 68 2c 20 | ..else...Xt.=.fread(fp,.[width,. |
11c40 | 68 65 69 67 68 74 5d 2c 20 27 75 63 68 61 72 27 29 3b 0a 09 09 58 20 3d 20 58 74 27 3b 0a 09 65 | height],.'uchar');...X.=.Xt';..e |
11c60 | 6e 64 0a 09 58 20 3d 20 58 20 2b 20 31 3b 0a 09 66 63 6c 6f 73 65 28 66 70 29 3b 0a 65 6c 73 65 | nd..X.=.X.+.1;..fclose(fp);.else |
11c80 | 0a 09 65 72 72 6f 72 28 27 49 6d 61 67 65 20 66 69 6c 65 20 6e 61 6d 65 20 6d 75 73 74 20 65 6e | ..error('Image.file.name.must.en |
11ca0 | 64 20 69 6e 20 65 69 74 68 65 72 20 27 27 72 61 73 27 27 20 6f 72 20 27 27 72 61 73 74 27 27 2e | d.in.either.''ras''.or.''rast''. |
11cc0 | 27 29 3b 0a 65 6e 64 0a 0a 0a 69 66 20 6e 61 72 67 69 6e 20 3d 3d 20 35 0a 0a 09 58 20 3d 20 58 | ');.end...if.nargin.==.5...X.=.X |
11ce0 | 28 79 73 3a 79 65 2c 20 78 73 3a 78 65 29 3b 0a 0a 65 6e 64 00 00 00 00 00 00 00 00 00 00 00 00 | (ys:ye,.xs:xe);..end............ |
11d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11e00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 52 65 63 74 61 6e 67 6c 65 32 53 71 75 61 72 65 2e 6d | TOOLBOX_calib/Rectangle2Square.m |
11e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11e60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
11e80 | 20 20 20 20 36 36 35 20 20 36 37 36 33 30 37 30 32 33 32 20 20 31 31 37 33 33 00 20 00 00 00 00 | ....665..6763070232..11733...... |
11ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
11fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12000 | 66 75 6e 63 74 69 6f 6e 20 5b 73 71 75 61 72 65 5d 20 3d 20 52 65 63 74 61 6e 67 6c 65 32 53 71 | function.[square].=.Rectangle2Sq |
12020 | 75 61 72 65 28 72 65 63 74 61 6e 67 6c 65 2c 4c 2c 57 29 3b 0a 0a 25 20 47 65 6e 65 72 61 74 65 | uare(rectangle,L,W);..%.Generate |
12040 | 20 74 68 65 20 73 71 75 61 72 65 20 66 72 6f 6d 20 61 20 72 65 63 74 61 6e 67 6c 65 20 6f 66 20 | .the.square.from.a.rectangle.of. |
12060 | 6b 6e 6f 77 6e 20 73 65 67 6d 65 6e 74 20 6c 65 6e 67 74 68 73 0a 25 20 66 72 6f 6d 20 70 74 31 | known.segment.lengths.%.from.pt1 |
12080 | 20 74 6f 20 70 74 32 20 3a 20 4c 0a 25 20 66 72 6f 6d 20 70 74 32 20 74 6f 20 70 74 33 20 3a 20 | .to.pt2.:.L.%.from.pt2.to.pt3.:. |
120a0 | 57 0a 0a 5b 75 5f 68 6f 72 69 2c 75 5f 76 65 72 74 5d 20 3d 20 55 6e 57 61 72 70 50 6c 61 6e 65 | W..[u_hori,u_vert].=.UnWarpPlane |
120c0 | 28 72 65 63 74 61 6e 67 6c 65 29 3b 0a 0a 63 6f 65 66 66 5f 78 20 3d 20 73 71 72 74 28 57 2f 4c | (rectangle);..coeff_x.=.sqrt(W/L |
120e0 | 29 3b 0a 63 6f 65 66 66 5f 79 20 3d 20 31 2f 63 6f 65 66 66 5f 78 3b 0a 0a 78 5f 63 6f 6f 72 64 | );.coeff_y.=.1/coeff_x;..x_coord |
12100 | 20 3d 20 5b 20 30 20 63 6f 65 66 66 5f 78 20 20 63 6f 65 66 66 5f 78 20 30 5d 3b 0a 79 5f 63 6f | .=.[.0.coeff_x..coeff_x.0];.y_co |
12120 | 6f 72 64 20 3d 20 5b 20 30 20 30 20 63 6f 65 66 66 5f 79 20 63 6f 65 66 66 5f 79 5d 3b 0a 0a 0a | ord.=.[.0.0.coeff_y.coeff_y];... |
12140 | 73 71 75 61 72 65 20 3d 20 72 65 63 74 61 6e 67 6c 65 28 3a 2c 31 29 20 2a 20 6f 6e 65 73 28 31 | square.=.rectangle(:,1).*.ones(1 |
12160 | 2c 34 29 20 2b 20 75 5f 68 6f 72 69 2a 78 5f 63 6f 6f 72 64 20 2b 20 75 5f 76 65 72 74 2a 79 5f | ,4).+.u_hori*x_coord.+.u_vert*y_ |
12180 | 63 6f 6f 72 64 3b 0a 73 71 75 61 72 65 20 3d 20 73 71 75 61 72 65 20 2e 2f 20 28 6f 6e 65 73 28 | coord;.square.=.square../.(ones( |
121a0 | 33 2c 31 29 2a 73 71 75 61 72 65 28 33 2c 3a 29 29 3b 0a 0a 0a 00 00 00 00 00 00 00 00 00 00 00 | 3,1)*square(3,:));.............. |
121c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
121e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12200 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 72 6f 64 72 69 67 75 65 73 2e 6d 00 00 00 00 00 00 00 | TOOLBOX_calib/rodrigues.m....... |
12220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12260 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
12280 | 20 20 31 30 35 32 35 20 20 36 37 36 33 30 37 30 32 33 33 20 20 31 30 36 32 34 00 20 00 00 00 00 | ..10525..6763070233..10624...... |
122a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
122c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
122e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
123a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
123c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
123e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
12400 | 66 75 6e 63 74 69 6f 6e 09 5b 6f 75 74 2c 64 6f 75 74 5d 3d 72 6f 64 72 69 67 75 65 73 28 69 6e | function.[out,dout]=rodrigues(in |
12420 | 29 0a 0a 25 20 52 4f 44 52 49 47 55 45 53 09 54 72 61 6e 73 66 6f 72 6d 20 72 6f 74 61 74 69 6f | )..%.RODRIGUES.Transform.rotatio |
12440 | 6e 20 6d 61 74 72 69 78 20 69 6e 74 6f 20 72 6f 74 61 74 69 6f 6e 20 76 65 63 74 6f 72 20 61 6e | n.matrix.into.rotation.vector.an |
12460 | 64 20 76 69 63 65 76 65 72 73 61 2e 0a 25 09 09 0a 25 09 09 53 69 6e 74 61 78 3a 20 20 5b 4f 55 | d.viceversa..%...%..Sintax:..[OU |
12480 | 54 5d 3d 52 4f 44 52 49 47 55 45 53 28 49 4e 29 0a 25 20 09 09 49 66 20 49 4e 20 69 73 20 61 20 | T]=RODRIGUES(IN).%...If.IN.is.a. |
124a0 | 33 78 33 20 72 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 74 68 65 6e 20 4f 55 54 20 69 73 20 | 3x3.rotation.matrix.then.OUT.is. |
124c0 | 74 68 65 0a 25 09 09 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 33 78 31 20 72 6f 74 61 74 69 6f | the.%..corresponding.3x1.rotatio |
124e0 | 6e 20 76 65 63 74 6f 72 0a 25 20 09 09 69 66 20 49 4e 20 69 73 20 61 20 72 6f 74 61 74 69 6f 6e | n.vector.%...if.IN.is.a.rotation |
12500 | 20 33 2d 76 65 63 74 6f 72 20 74 68 65 6e 20 4f 55 54 20 69 73 20 74 68 65 20 0a 25 09 09 63 6f | .3-vector.then.OUT.is.the..%..co |
12520 | 72 72 65 73 70 6f 6e 64 69 6e 67 20 33 78 33 20 72 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 0a | rresponding.3x3.rotation.matrix. |
12540 | 25 0a 0a 25 25 0a 25 25 09 09 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 4d 61 72 63 68 20 31 39 | %..%%.%%..Copyright.(c).March.19 |
12560 | 39 33 20 2d 2d 20 50 69 65 74 72 6f 20 50 65 72 6f 6e 61 0a 25 25 09 09 43 61 6c 69 66 6f 72 6e | 93.--.Pietro.Perona.%%..Californ |
12580 | 69 61 20 49 6e 73 74 69 74 75 74 65 20 6f 66 20 54 65 63 68 6e 6f 6c 6f 67 79 0a 25 25 0a 0a 25 | ia.Institute.of.Technology.%%..% |
125a0 | 25 20 41 4c 4c 20 43 48 45 43 4b 45 44 20 42 59 20 4a 45 41 4e 2d 59 56 45 53 20 42 4f 55 47 55 | %.ALL.CHECKED.BY.JEAN-YVES.BOUGU |
125c0 | 45 54 2c 20 4f 63 74 6f 62 65 72 20 31 39 39 35 2e 0a 25 25 20 46 4f 52 20 41 4c 4c 20 4a 41 43 | ET,.October.1995..%%.FOR.ALL.JAC |
125e0 | 4f 42 49 41 4e 20 4d 41 54 52 49 43 45 53 20 21 21 21 20 4c 4f 4f 4b 20 41 54 20 54 48 45 20 54 | OBIAN.MATRICES.!!!.LOOK.AT.THE.T |
12600 | 45 53 54 20 41 54 20 54 48 45 20 45 4e 44 20 21 21 0a 0a 25 25 20 42 55 47 20 77 68 65 6e 20 6e | EST.AT.THE.END.!!..%%.BUG.when.n |
12620 | 6f 72 6d 28 6f 6d 29 3d 70 69 20 66 69 78 65 64 20 2d 2d 20 41 70 72 69 6c 20 36 74 68 2c 20 31 | orm(om)=pi.fixed.--.April.6th,.1 |
12640 | 39 39 37 3b 0a 25 25 20 4a 65 61 6e 2d 59 76 65 73 20 42 6f 75 67 75 65 74 0a 0a 0a 5b 6d 2c 6e | 997;.%%.Jean-Yves.Bouguet...[m,n |
12660 | 5d 20 3d 20 73 69 7a 65 28 69 6e 29 3b 0a 25 62 69 67 65 70 73 20 3d 20 31 30 65 2b 34 2a 65 70 | ].=.size(in);.%bigeps.=.10e+4*ep |
12680 | 73 3b 0a 62 69 67 65 70 73 20 3d 20 31 30 65 2b 32 30 2a 65 70 73 3b 0a 0a 69 66 20 28 28 6d 3d | s;.bigeps.=.10e+20*eps;..if.((m= |
126a0 | 3d 31 29 20 26 20 28 6e 3d 3d 33 29 29 20 7c 20 28 28 6d 3d 3d 33 29 20 26 20 28 6e 3d 3d 31 29 | =1).&.(n==3)).|.((m==3).&.(n==1) |
126c0 | 29 20 25 25 20 69 74 20 69 73 20 61 20 72 6f 74 61 74 69 6f 6e 20 76 65 63 74 6f 72 0a 20 20 20 | ).%%.it.is.a.rotation.vector.... |
126e0 | 74 68 65 74 61 20 3d 20 6e 6f 72 6d 28 69 6e 29 3b 0a 20 20 20 69 66 20 74 68 65 74 61 20 3c 20 | theta.=.norm(in);....if.theta.<. |
12700 | 65 70 73 0a 20 20 20 20 20 20 52 20 3d 20 65 79 65 28 33 29 3b 0a 20 20 20 20 20 20 0a 20 20 20 | eps.......R.=.eye(3);........... |
12720 | 20 20 20 64 52 64 69 6e 20 3d 20 5b 30 20 30 20 30 3b 0a 09 20 20 20 20 20 20 20 30 20 30 20 31 | ...dRdin.=.[0.0.0;.........0.0.1 |
12740 | 3b 0a 09 20 20 20 20 20 20 20 30 20 2d 31 20 30 3b 0a 09 20 20 20 20 20 20 20 30 20 30 20 2d 31 | ;.........0.-1.0;.........0.0.-1 |
12760 | 3b 0a 09 20 20 20 20 20 20 20 30 20 30 20 30 3b 0a 09 20 20 20 20 20 20 20 31 20 30 20 30 3b 0a | ;.........0.0.0;.........1.0.0;. |
12780 | 09 20 20 20 20 20 20 20 30 20 31 20 30 3b 0a 09 20 20 20 20 20 20 20 2d 31 20 30 20 30 3b 0a 09 | ........0.1.0;.........-1.0.0;.. |
127a0 | 20 20 20 20 20 20 20 30 20 30 20 30 5d 3b 0a 09 20 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 | .......0.0.0];.......else....... |
127c0 | 69 66 20 6e 3d 3d 6c 65 6e 67 74 68 28 69 6e 29 20 20 69 6e 3d 69 6e 27 3b 20 65 6e 64 3b 20 09 | if.n==length(in)..in=in';.end;.. |
127e0 | 25 25 20 6d 61 6b 65 20 69 74 20 61 20 63 6f 6c 75 6d 6e 20 76 65 63 2e 20 69 66 20 6e 65 63 65 | %%.make.it.a.column.vec..if.nece |
12800 | 73 73 2e 0a 09 20 0a 09 20 25 6d 33 20 3d 20 5b 69 6e 2c 74 68 65 74 61 5d 0a 0a 09 20 64 6d 33 | ss.......%m3.=.[in,theta]....dm3 |
12820 | 64 69 6e 20 3d 20 5b 65 79 65 28 33 29 3b 69 6e 27 2f 74 68 65 74 61 5d 3b 0a 0a 09 20 6f 6d 65 | din.=.[eye(3);in'/theta];....ome |
12840 | 67 61 20 3d 20 69 6e 2f 74 68 65 74 61 3b 0a 09 20 0a 09 20 25 6d 32 20 3d 20 5b 6f 6d 65 67 61 | ga.=.in/theta;......%m2.=.[omega |
12860 | 3b 74 68 65 74 61 5d 0a 09 20 0a 09 20 64 6d 32 64 6d 33 20 3d 20 5b 65 79 65 28 33 29 2f 74 68 | ;theta]......dm2dm3.=.[eye(3)/th |
12880 | 65 74 61 20 2d 69 6e 2f 74 68 65 74 61 5e 32 3b 20 7a 65 72 6f 73 28 31 2c 33 29 20 31 5d 3b 0a | eta.-in/theta^2;.zeros(1,3).1];. |
128a0 | 09 20 0a 09 20 61 6c 70 68 61 20 3d 20 63 6f 73 28 74 68 65 74 61 29 3b 0a 09 20 62 65 74 61 20 | .....alpha.=.cos(theta);...beta. |
128c0 | 3d 20 73 69 6e 28 74 68 65 74 61 29 3b 0a 09 20 67 61 6d 6d 61 20 3d 20 31 2d 63 6f 73 28 74 68 | =.sin(theta);...gamma.=.1-cos(th |
128e0 | 65 74 61 29 3b 0a 09 20 6f 6d 65 67 61 76 3d 5b 5b 30 20 2d 6f 6d 65 67 61 28 33 29 20 6f 6d 65 | eta);...omegav=[[0.-omega(3).ome |
12900 | 67 61 28 32 29 5d 3b 5b 6f 6d 65 67 61 28 33 29 20 30 20 2d 6f 6d 65 67 61 28 31 29 5d 3b 5b 2d | ga(2)];[omega(3).0.-omega(1)];[- |
12920 | 6f 6d 65 67 61 28 32 29 20 6f 6d 65 67 61 28 31 29 20 30 20 5d 5d 3b 0a 09 20 41 20 3d 20 6f 6d | omega(2).omega(1).0.]];...A.=.om |
12940 | 65 67 61 2a 6f 6d 65 67 61 27 3b 0a 09 20 0a 09 20 25 6d 31 20 3d 20 5b 61 6c 70 68 61 3b 62 65 | ega*omega';......%m1.=.[alpha;be |
12960 | 74 61 3b 67 61 6d 6d 61 3b 6f 6d 65 67 61 76 3b 41 5d 3b 0a 09 20 0a 09 20 64 6d 31 64 6d 32 20 | ta;gamma;omegav;A];......dm1dm2. |
12980 | 3d 20 7a 65 72 6f 73 28 32 31 2c 34 29 3b 0a 09 20 64 6d 31 64 6d 32 28 31 2c 34 29 20 3d 20 2d | =.zeros(21,4);...dm1dm2(1,4).=.- |
129a0 | 73 69 6e 28 74 68 65 74 61 29 3b 0a 09 20 64 6d 31 64 6d 32 28 32 2c 34 29 20 3d 20 63 6f 73 28 | sin(theta);...dm1dm2(2,4).=.cos( |
129c0 | 74 68 65 74 61 29 3b 0a 09 20 64 6d 31 64 6d 32 28 33 2c 34 29 20 3d 20 73 69 6e 28 74 68 65 74 | theta);...dm1dm2(3,4).=.sin(thet |
129e0 | 61 29 3b 0a 09 20 64 6d 31 64 6d 32 28 34 3a 31 32 2c 31 3a 33 29 20 3d 20 5b 30 20 30 20 30 20 | a);...dm1dm2(4:12,1:3).=.[0.0.0. |
12a00 | 30 20 30 20 31 20 30 20 2d 31 20 30 3b 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 0.0.1.0.-1.0;................... |
12a20 | 20 20 20 20 30 20 30 20 2d 31 20 30 20 30 20 30 20 31 20 30 20 30 3b 0a 09 09 09 20 20 20 20 20 | ....0.0.-1.0.0.0.1.0.0;......... |
12a40 | 30 20 31 20 30 20 2d 31 20 30 20 30 20 30 20 30 20 30 5d 27 3b 0a 09 09 20 20 20 20 20 20 20 0a | 0.1.0.-1.0.0.0.0.0]';........... |
12a60 | 20 20 20 20 20 20 20 20 20 77 31 20 3d 20 6f 6d 65 67 61 28 31 29 3b 0a 09 20 77 32 20 3d 20 6f | .........w1.=.omega(1);...w2.=.o |
12a80 | 6d 65 67 61 28 32 29 3b 0a 09 20 77 33 20 3d 20 6f 6d 65 67 61 28 33 29 3b 0a 09 20 0a 09 20 64 | mega(2);...w3.=.omega(3);......d |
12aa0 | 6d 31 64 6d 32 28 31 33 3a 32 31 2c 31 29 20 3d 20 5b 32 2a 77 31 3b 77 32 3b 77 33 3b 77 32 3b | m1dm2(13:21,1).=.[2*w1;w2;w3;w2; |
12ac0 | 30 3b 30 3b 77 33 3b 30 3b 30 5d 3b 0a 09 20 64 6d 31 64 6d 32 28 31 33 3a 20 32 31 2c 32 29 20 | 0;0;w3;0;0];...dm1dm2(13:.21,2). |
12ae0 | 3d 20 5b 30 3b 77 31 3b 30 3b 77 31 3b 32 2a 77 32 3b 77 33 3b 30 3b 77 33 3b 30 5d 3b 0a 09 20 | =.[0;w1;0;w1;2*w2;w3;0;w3;0];... |
12b00 | 64 6d 31 64 6d 32 28 31 33 3a 32 31 2c 33 29 20 3d 20 5b 30 3b 30 3b 77 31 3b 30 3b 30 3b 77 32 | dm1dm2(13:21,3).=.[0;0;w1;0;0;w2 |
12b20 | 3b 77 31 3b 77 32 3b 32 2a 77 33 5d 3b 0a 09 20 0a 09 20 52 20 3d 20 65 79 65 28 33 29 2a 61 6c | ;w1;w2;2*w3];......R.=.eye(3)*al |
12b40 | 70 68 61 20 2b 20 6f 6d 65 67 61 76 2a 62 65 74 61 20 2b 20 41 2a 67 61 6d 6d 61 3b 0a 09 20 0a | pha.+.omegav*beta.+.A*gamma;.... |
12b60 | 09 20 64 52 64 6d 31 20 3d 20 7a 65 72 6f 73 28 39 2c 32 31 29 3b 0a 09 20 0a 09 20 64 52 64 6d | ..dRdm1.=.zeros(9,21);......dRdm |
12b80 | 31 28 5b 31 20 35 20 39 5d 2c 31 29 20 3d 20 6f 6e 65 73 28 33 2c 31 29 3b 0a 09 20 64 52 64 6d | 1([1.5.9],1).=.ones(3,1);...dRdm |
12ba0 | 31 28 3a 2c 32 29 20 3d 20 6f 6d 65 67 61 76 28 3a 29 3b 0a 09 20 64 52 64 6d 31 28 3a 2c 34 3a | 1(:,2).=.omegav(:);...dRdm1(:,4: |
12bc0 | 31 32 29 20 3d 20 62 65 74 61 2a 65 79 65 28 39 29 3b 0a 09 20 64 52 64 6d 31 28 3a 2c 33 29 20 | 12).=.beta*eye(9);...dRdm1(:,3). |
12be0 | 3d 20 41 28 3a 29 3b 0a 09 20 64 52 64 6d 31 28 3a 2c 31 33 3a 32 31 29 20 3d 20 67 61 6d 6d 61 | =.A(:);...dRdm1(:,13:21).=.gamma |
12c00 | 2a 65 79 65 28 39 29 3b 0a 09 20 0a 09 20 64 52 64 69 6e 20 3d 20 64 52 64 6d 31 20 2a 20 64 6d | *eye(9);......dRdin.=.dRdm1.*.dm |
12c20 | 31 64 6d 32 20 2a 20 64 6d 32 64 6d 33 20 2a 20 64 6d 33 64 69 6e 3b 0a 09 20 0a 09 20 0a 20 20 | 1dm2.*.dm2dm3.*.dm3din;......... |
12c40 | 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 6f 75 74 20 3d 20 52 3b 0a 20 20 20 20 20 20 64 6f | ....end;.......out.=.R;.......do |
12c60 | 75 74 20 3d 20 64 52 64 69 6e 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 25 25 20 69 74 20 69 | ut.=.dRdin;..............%%.it.i |
12c80 | 73 20 70 72 6f 62 2e 20 61 20 72 6f 74 20 6d 61 74 72 2e 0a 20 20 20 65 6c 73 65 69 66 20 28 28 | s.prob..a.rot.matr.....elseif.(( |
12ca0 | 6d 3d 3d 6e 29 20 26 20 28 6d 3d 3d 33 29 20 26 20 28 6e 6f 72 6d 28 69 6e 27 20 2a 20 69 6e 20 | m==n).&.(m==3).&.(norm(in'.*.in. |
12cc0 | 2d 20 65 79 65 28 33 29 29 20 3c 20 62 69 67 65 70 73 29 2e 2e 2e 0a 09 20 20 20 20 26 20 28 61 | -.eye(3)).<.bigeps).........&.(a |
12ce0 | 62 73 28 64 65 74 28 69 6e 29 2d 31 29 20 3c 20 62 69 67 65 70 73 29 29 0a 20 20 20 20 20 20 52 | bs(det(in)-1).<.bigeps)).......R |
12d00 | 20 3d 20 69 6e 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 0a 20 20 20 20 | .=.in;.......................... |
12d20 | 20 20 74 72 20 3d 20 28 74 72 61 63 65 28 52 29 2d 31 29 2f 32 3b 0a 20 20 20 20 20 20 64 74 72 | ..tr.=.(trace(R)-1)/2;.......dtr |
12d40 | 64 52 20 3d 20 5b 31 20 30 20 30 20 30 20 31 20 30 20 30 20 30 20 31 5d 2f 32 3b 0a 20 20 20 20 | dR.=.[1.0.0.0.1.0.0.0.1]/2;..... |
12d60 | 20 20 74 68 65 74 61 20 3d 20 72 65 61 6c 28 61 63 6f 73 28 74 72 29 29 3b 0a 20 20 20 20 20 20 | ..theta.=.real(acos(tr));....... |
12d80 | 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 69 66 20 73 69 6e 28 74 68 65 74 61 29 20 3e 3d 20 31 | ..............if.sin(theta).>=.1 |
12da0 | 65 2d 35 2c 0a 09 20 0a 09 20 64 74 68 65 74 61 64 74 72 20 3d 20 2d 31 2f 73 71 72 74 28 31 2d | e-5,......dthetadtr.=.-1/sqrt(1- |
12dc0 | 74 72 5e 32 29 3b 0a 09 20 0a 09 20 64 74 68 65 74 61 64 52 20 3d 20 64 74 68 65 74 61 64 74 72 | tr^2);......dthetadR.=.dthetadtr |
12de0 | 20 2a 20 64 74 72 64 52 3b 0a 09 20 25 20 76 61 72 31 20 3d 20 5b 76 74 68 3b 74 68 65 74 61 5d | .*.dtrdR;...%.var1.=.[vth;theta] |
12e00 | 3b 0a 09 20 76 74 68 20 3d 20 31 2f 28 32 2a 73 69 6e 28 74 68 65 74 61 29 29 3b 0a 09 20 64 76 | ;...vth.=.1/(2*sin(theta));...dv |
12e20 | 74 68 64 74 68 65 74 61 20 3d 20 2d 76 74 68 2a 63 6f 73 28 74 68 65 74 61 29 2f 73 69 6e 28 74 | thdtheta.=.-vth*cos(theta)/sin(t |
12e40 | 68 65 74 61 29 3b 0a 09 20 64 76 61 72 31 64 74 68 65 74 61 20 3d 20 5b 64 76 74 68 64 74 68 65 | heta);...dvar1dtheta.=.[dvthdthe |
12e60 | 74 61 3b 31 5d 3b 0a 09 20 0a 09 20 64 76 61 72 31 64 52 20 3d 20 20 64 76 61 72 31 64 74 68 65 | ta;1];......dvar1dR.=..dvar1dthe |
12e80 | 74 61 20 2a 20 64 74 68 65 74 61 64 52 3b 0a 09 20 0a 09 20 0a 09 20 6f 6d 31 20 3d 20 5b 52 28 | ta.*.dthetadR;.........om1.=.[R( |
12ea0 | 33 2c 32 29 2d 52 28 32 2c 33 29 2c 20 52 28 31 2c 33 29 2d 52 28 33 2c 31 29 2c 20 52 28 32 2c | 3,2)-R(2,3),.R(1,3)-R(3,1),.R(2, |
12ec0 | 31 29 2d 52 28 31 2c 32 29 5d 27 3b 0a 09 20 0a 09 20 64 6f 6d 31 64 52 20 3d 20 5b 30 20 30 20 | 1)-R(1,2)]';......dom1dR.=.[0.0. |
12ee0 | 30 20 30 20 30 20 31 20 30 20 2d 31 20 30 3b 0a 09 20 20 20 20 20 20 20 30 20 30 20 2d 31 20 30 | 0.0.0.1.0.-1.0;.........0.0.-1.0 |
12f00 | 20 30 20 30 20 31 20 30 20 30 3b 0a 09 20 20 20 20 20 20 20 30 20 31 20 30 20 2d 31 20 30 20 30 | .0.0.1.0.0;.........0.1.0.-1.0.0 |
12f20 | 20 30 20 30 20 30 5d 3b 0a 09 20 0a 09 20 25 20 76 61 72 20 3d 20 5b 6f 6d 31 3b 76 74 68 3b 74 | .0.0.0];......%.var.=.[om1;vth;t |
12f40 | 68 65 74 61 5d 3b 0a 09 20 64 76 61 72 64 52 20 3d 20 5b 64 6f 6d 31 64 52 3b 64 76 61 72 31 64 | heta];...dvardR.=.[dom1dR;dvar1d |
12f60 | 52 5d 3b 0a 09 20 0a 09 20 25 20 76 61 72 32 20 3d 20 5b 6f 6d 3b 74 68 65 74 61 5d 3b 0a 09 20 | R];......%.var2.=.[om;theta];... |
12f80 | 6f 6d 20 3d 20 76 74 68 2a 6f 6d 31 3b 0a 09 20 64 6f 6d 64 76 61 72 20 3d 20 5b 76 74 68 2a 65 | om.=.vth*om1;...domdvar.=.[vth*e |
12fa0 | 79 65 28 33 29 20 6f 6d 31 20 7a 65 72 6f 73 28 33 2c 31 29 5d 3b 0a 09 20 64 74 68 65 74 61 64 | ye(3).om1.zeros(3,1)];...dthetad |
12fc0 | 76 61 72 20 3d 20 5b 30 20 30 20 30 20 30 20 31 5d 3b 0a 09 20 64 76 61 72 32 64 76 61 72 20 3d | var.=.[0.0.0.0.1];...dvar2dvar.= |
12fe0 | 20 5b 64 6f 6d 64 76 61 72 3b 64 74 68 65 74 61 64 76 61 72 5d 3b 0a 09 20 0a 09 20 0a 09 20 6f | .[domdvar;dthetadvar];.........o |
13000 | 75 74 20 3d 20 6f 6d 2a 74 68 65 74 61 3b 0a 09 20 64 6f 6d 65 67 61 64 76 61 72 32 20 3d 20 5b | ut.=.om*theta;...domegadvar2.=.[ |
13020 | 74 68 65 74 61 2a 65 79 65 28 33 29 20 6f 6d 5d 3b 0a 09 20 0a 09 20 64 6f 75 74 20 3d 20 64 6f | theta*eye(3).om];......dout.=.do |
13040 | 6d 65 67 61 64 76 61 72 32 20 2a 20 64 76 61 72 32 64 76 61 72 20 2a 20 64 76 61 72 64 52 3b 0a | megadvar2.*.dvar2dvar.*.dvardR;. |
13060 | 09 20 0a 09 20 0a 20 20 20 20 20 20 65 6c 73 65 0a 09 20 69 66 20 74 72 20 3e 20 30 3b 20 09 09 | ............else...if.tr.>.0;... |
13080 | 09 25 20 63 61 73 65 20 6e 6f 72 6d 28 6f 6d 29 3d 30 3b 0a 09 20 20 20 20 0a 09 20 20 20 20 6f | .%.case.norm(om)=0;............o |
130a0 | 75 74 20 3d 20 5b 30 20 30 20 30 5d 27 3b 0a 09 20 20 20 20 0a 09 20 20 20 20 64 6f 75 74 20 3d | ut.=.[0.0.0]';............dout.= |
130c0 | 20 5b 30 20 30 20 30 20 30 20 30 20 31 2f 32 20 30 20 2d 31 2f 32 20 30 3b 0a 09 09 20 20 30 20 | .[0.0.0.0.0.1/2.0.-1/2.0;.....0. |
130e0 | 30 20 2d 31 2f 32 20 30 20 30 20 30 20 31 2f 32 20 30 20 30 3b 0a 09 09 20 20 30 20 31 2f 32 20 | 0.-1/2.0.0.0.1/2.0.0;.....0.1/2. |
13100 | 30 20 2d 31 2f 32 20 30 20 30 20 30 20 30 20 30 5d 3b 0a 09 20 65 6c 73 65 20 09 09 09 09 25 20 | 0.-1/2.0.0.0.0.0];...else.....%. |
13120 | 63 61 73 65 20 6e 6f 72 6d 28 6f 6d 29 3d 70 69 3b 20 25 25 20 66 69 78 65 64 20 41 70 72 69 6c | case.norm(om)=pi;.%%.fixed.April |
13140 | 20 36 74 68 0a 09 20 20 20 20 0a 09 20 20 20 20 0a 09 20 20 20 20 6f 75 74 20 3d 20 74 68 65 74 | .6th..................out.=.thet |
13160 | 61 20 2a 20 28 73 71 72 74 28 28 64 69 61 67 28 52 29 2b 31 29 2f 32 29 2e 2a 5b 31 3b 32 2a 28 | a.*.(sqrt((diag(R)+1)/2).*[1;2*( |
13180 | 52 28 31 2c 32 3a 33 29 3e 3d 30 29 27 2d 31 5d 29 3b 0a 09 20 20 20 20 25 6b 65 79 62 6f 61 72 | R(1,2:3)>=0)'-1]);......%keyboar |
131a0 | 64 3b 0a 09 20 20 20 20 0a 09 20 20 20 20 69 66 20 6e 61 72 67 6f 75 74 20 3e 20 31 2c 0a 09 20 | d;............if.nargout.>.1,... |
131c0 | 20 20 20 20 20 20 66 70 72 69 6e 74 66 28 31 2c 27 57 41 52 4e 49 4e 47 21 21 21 21 20 4a 61 63 | ......fprintf(1,'WARNING!!!!.Jac |
131e0 | 6f 62 69 61 6e 20 64 6f 6d 64 52 20 75 6e 64 65 66 69 6e 65 64 21 21 21 5c 6e 27 29 3b 0a 09 09 | obian.domdR.undefined!!!\n');... |
13200 | 20 64 6f 75 74 20 3d 20 5b 5d 3b 0a 09 20 20 20 20 65 6e 64 3b 0a 09 20 65 6e 64 3b 20 0a 20 20 | .dout.=.[];......end;...end;.... |
13220 | 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 0a 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 65 72 | ....end;...........else.......er |
13240 | 72 6f 72 28 27 4e 65 69 74 68 65 72 20 61 20 72 6f 74 61 74 69 6f 6e 20 6d 61 74 72 69 78 20 6e | ror('Neither.a.rotation.matrix.n |
13260 | 6f 72 20 61 20 72 6f 74 61 74 69 6f 6e 20 76 65 63 74 6f 72 20 77 65 72 65 20 70 72 6f 76 69 64 | or.a.rotation.vector.were.provid |
13280 | 65 64 27 29 3b 0a 20 20 20 65 6e 64 3b 0a 0a 72 65 74 75 72 6e 3b 0a 0a 25 25 20 74 65 73 74 20 | ed');....end;..return;..%%.test. |
132a0 | 6f 66 20 74 68 65 20 4a 61 63 6f 62 69 61 6e 73 3a 0a 0a 25 25 25 25 20 54 45 53 54 20 4f 46 20 | of.the.Jacobians:..%%%%.TEST.OF. |
132c0 | 64 52 64 6f 6d 3a 0a 6f 6d 20 3d 20 72 61 6e 64 6e 28 33 2c 31 29 3b 0a 64 6f 6d 20 3d 20 72 61 | dRdom:.om.=.randn(3,1);.dom.=.ra |
132e0 | 6e 64 6e 28 33 2c 31 29 2f 31 30 30 30 30 30 30 3b 0a 0a 5b 52 31 2c 64 52 31 5d 20 3d 20 72 6f | ndn(3,1)/1000000;..[R1,dR1].=.ro |
13300 | 64 72 69 67 75 65 73 28 6f 6d 29 3b 0a 52 32 20 3d 20 72 6f 64 72 69 67 75 65 73 28 6f 6d 2b 64 | drigues(om);.R2.=.rodrigues(om+d |
13320 | 6f 6d 29 3b 0a 0a 52 32 61 20 3d 20 52 31 20 2b 20 72 65 73 68 61 70 65 28 64 52 31 20 2a 20 64 | om);..R2a.=.R1.+.reshape(dR1.*.d |
13340 | 6f 6d 2c 33 2c 33 29 3b 0a 0a 67 61 69 6e 20 3d 20 6e 6f 72 6d 28 52 32 20 2d 20 52 31 29 2f 6e | om,3,3);..gain.=.norm(R2.-.R1)/n |
13360 | 6f 72 6d 28 52 32 20 2d 20 52 32 61 29 0a 0a 25 25 25 20 54 45 53 54 20 4f 46 20 64 4f 6d 64 52 | orm(R2.-.R2a)..%%%.TEST.OF.dOmdR |
13380 | 3a 0a 6f 6d 20 3d 20 72 61 6e 64 6e 28 33 2c 31 29 3b 0a 52 20 3d 20 72 6f 64 72 69 67 75 65 73 | :.om.=.randn(3,1);.R.=.rodrigues |
133a0 | 28 6f 6d 29 3b 0a 64 6f 6d 20 3d 20 72 61 6e 64 6e 28 33 2c 31 29 2f 31 30 30 30 30 3b 0a 64 52 | (om);.dom.=.randn(3,1)/10000;.dR |
133c0 | 20 3d 20 72 6f 64 72 69 67 75 65 73 28 6f 6d 2b 64 6f 6d 29 20 2d 20 52 3b 0a 0a 5b 6f 6d 63 2c | .=.rodrigues(om+dom).-.R;..[omc, |
133e0 | 64 6f 6d 64 52 5d 20 3d 20 72 6f 64 72 69 67 75 65 73 28 52 29 3b 0a 5b 6f 6d 32 5d 20 3d 20 72 | domdR].=.rodrigues(R);.[om2].=.r |
13400 | 6f 64 72 69 67 75 65 73 28 52 2b 64 52 29 3b 0a 0a 6f 6d 5f 61 70 70 20 3d 20 6f 6d 63 20 2b 20 | odrigues(R+dR);..om_app.=.omc.+. |
13420 | 64 6f 6d 64 52 2a 64 52 28 3a 29 3b 0a 0a 67 61 69 6e 20 3d 20 6e 6f 72 6d 28 6f 6d 32 20 2d 20 | domdR*dR(:);..gain.=.norm(om2.-. |
13440 | 6f 6d 63 29 2f 6e 6f 72 6d 28 6f 6d 32 20 2d 20 6f 6d 5f 61 70 70 29 0a 0a 0a 25 25 25 20 4f 54 | omc)/norm(om2.-.om_app)...%%%.OT |
13460 | 48 45 52 20 42 55 47 3a 20 28 46 49 58 45 44 20 4e 4f 57 21 21 21 29 0a 0a 6f 6d 75 20 3d 20 72 | HER.BUG:.(FIXED.NOW!!!)..omu.=.r |
13480 | 61 6e 64 6e 28 33 2c 31 29 3b 20 20 20 0a 6f 6d 75 20 3d 20 6f 6d 75 2f 6e 6f 72 6d 28 6f 6d 75 | andn(3,1);....omu.=.omu/norm(omu |
134a0 | 29 0a 6f 6d 20 3d 20 70 69 2a 6f 6d 75 3b 20 20 20 20 20 20 20 20 0a 5b 52 2c 64 52 5d 3d 20 72 | ).om.=.pi*omu;.........[R,dR]=.r |
134c0 | 6f 64 72 69 67 75 65 73 28 6f 6d 29 3b 0a 5b 6f 6d 32 5d 20 3d 20 72 6f 64 72 69 67 75 65 73 28 | odrigues(om);.[om2].=.rodrigues( |
134e0 | 52 29 3b 0a 5b 6f 6d 20 6f 6d 32 5d 0a 0a 25 25 25 20 4e 4f 52 4d 41 4c 20 4f 50 45 52 41 54 49 | R);.[om.om2]..%%%.NORMAL.OPERATI |
13500 | 4f 4e 0a 0a 6f 6d 20 3d 20 72 61 6e 64 6e 28 33 2c 31 29 3b 20 20 20 20 20 20 20 20 20 0a 5b 52 | ON..om.=.randn(3,1);..........[R |
13520 | 2c 64 52 5d 3d 20 72 6f 64 72 69 67 75 65 73 28 6f 6d 29 3b 0a 5b 6f 6d 32 5d 20 3d 20 72 6f 64 | ,dR]=.rodrigues(om);.[om2].=.rod |
13540 | 72 69 67 75 65 73 28 52 29 3b 0a 5b 6f 6d 20 6f 6d 32 5d 0a 0a 00 00 00 00 00 00 00 00 00 00 00 | rigues(R);.[om.om2]............. |
13560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
135a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
135c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
135e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13600 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 73 63 72 69 70 74 5f 66 69 74 5f 64 69 73 74 6f 72 74 | TOOLBOX_calib/script_fit_distort |
13620 | 69 6f 6e 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ion.m........................... |
13640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13660 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
13680 | 20 20 20 31 37 32 35 20 20 36 37 36 33 30 37 30 32 33 33 20 20 31 33 32 32 37 00 20 00 00 00 00 | ...1725..6763070233..13227...... |
136a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
136c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
136e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
137a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
137c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
137e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13800 | 0a 20 20 20 20 20 20 73 61 74 69 73 5f 64 69 73 74 6f 72 74 20 3d 20 30 3b 0a 20 20 20 20 20 20 | .......satis_distort.=.0;....... |
13820 | 0a 20 20 20 20 20 20 64 69 73 70 28 5b 27 45 73 74 69 6d 61 74 65 64 20 66 6f 63 61 6c 3a 20 27 | .......disp(['Estimated.focal:.' |
13840 | 20 6e 75 6d 32 73 74 72 28 66 5f 67 29 20 27 20 70 69 78 65 6c 73 27 5d 29 3b 0a 20 20 20 20 20 | .num2str(f_g).'.pixels']);...... |
13860 | 20 0a 20 20 20 20 20 20 77 68 69 6c 65 20 7e 73 61 74 69 73 5f 64 69 73 74 6f 72 74 2c 0a 0a 09 | ........while.~satis_distort,... |
13880 | 20 6b 5f 67 20 3d 20 69 6e 70 75 74 28 27 47 75 65 73 73 20 66 6f 72 20 64 69 73 74 6f 72 74 69 | .k_g.=.input('Guess.for.distorti |
138a0 | 6f 6e 20 66 61 63 74 6f 72 20 6b 63 20 28 5b 5d 3d 30 29 3a 20 27 29 3b 0a 09 20 0a 09 20 69 66 | on.factor.kc.([]=0):.');......if |
138c0 | 20 69 73 65 6d 70 74 79 28 6b 5f 67 29 2c 20 6b 5f 67 20 3d 20 30 3b 20 65 6e 64 3b 0a 20 20 20 | .isempty(k_g),.k_g.=.0;.end;.... |
138e0 | 20 20 20 0a 09 20 78 79 5f 63 6f 72 6e 65 72 73 5f 75 6e 64 69 73 74 20 3d 20 63 6f 6d 70 5f 64 | ......xy_corners_undist.=.comp_d |
13900 | 69 73 74 6f 72 74 69 6f 6e 32 28 5b 78 27 20 2d 20 63 5f 67 28 31 29 3b 79 27 2d 63 5f 67 28 32 | istortion2([x'.-.c_g(1);y'-c_g(2 |
13920 | 29 5d 2f 66 5f 67 2c 6b 5f 67 29 3b 0a 09 20 0a 09 20 78 75 20 3d 20 78 79 5f 63 6f 72 6e 65 72 | )]/f_g,k_g);......xu.=.xy_corner |
13940 | 73 5f 75 6e 64 69 73 74 28 31 2c 3a 29 27 3b 0a 09 20 79 75 20 3d 20 78 79 5f 63 6f 72 6e 65 72 | s_undist(1,:)';...yu.=.xy_corner |
13960 | 73 5f 75 6e 64 69 73 74 28 32 2c 3a 29 27 3b 0a 09 20 0a 09 20 5b 58 58 75 5d 20 3d 20 70 72 6f | s_undist(2,:)';......[XXu].=.pro |
13980 | 6a 65 63 74 65 64 47 72 69 64 20 28 20 5b 78 75 28 31 29 3b 79 75 28 31 29 5d 2c 20 5b 78 75 28 | jectedGrid.(.[xu(1);yu(1)],.[xu( |
139a0 | 32 29 3b 79 75 28 32 29 5d 2c 5b 78 75 28 33 29 3b 79 75 28 33 29 5d 2c 20 5b 78 75 28 34 29 3b | 2);yu(2)],[xu(3);yu(3)],.[xu(4); |
139c0 | 79 75 28 34 29 5d 2c 6e 5f 73 71 5f 78 2b 31 2c 6e 5f 73 71 5f 79 2b 31 29 3b 20 25 20 54 68 65 | yu(4)],n_sq_x+1,n_sq_y+1);.%.The |
139e0 | 20 66 75 6c 6c 20 67 72 69 64 0a 09 20 0a 09 20 58 58 20 3d 20 28 6f 6e 65 73 28 32 2c 31 29 2a | .full.grid......XX.=.(ones(2,1)* |
13a00 | 28 31 20 2b 20 6b 5f 67 20 2a 20 73 75 6d 28 58 58 75 2e 5e 32 29 29 29 20 2e 2a 20 58 58 75 3b | (1.+.k_g.*.sum(XXu.^2)))..*.XXu; |
13a20 | 0a 09 20 58 58 28 31 2c 3a 29 20 3d 20 66 5f 67 2a 58 58 28 31 2c 3a 29 2b 63 5f 67 28 31 29 3b | ...XX(1,:).=.f_g*XX(1,:)+c_g(1); |
13a40 | 0a 09 20 58 58 28 32 2c 3a 29 20 3d 20 66 5f 67 2a 58 58 28 32 2c 3a 29 2b 63 5f 67 28 32 29 3b | ...XX(2,:).=.f_g*XX(2,:)+c_g(2); |
13a60 | 0a 09 20 0a 09 20 66 69 67 75 72 65 28 32 29 3b 0a 09 20 69 6d 61 67 65 28 49 29 3b 0a 09 20 63 | ......figure(2);...image(I);...c |
13a80 | 6f 6c 6f 72 6d 61 70 28 6d 61 70 29 3b 0a 09 20 7a 6f 6f 6d 20 6f 6e 3b 0a 09 20 68 6f 6c 64 20 | olormap(map);...zoom.on;...hold. |
13aa0 | 6f 6e 3b 0a 09 20 25 70 6c 6f 74 28 66 5f 67 2a 58 58 75 28 31 2c 3a 29 2b 63 5f 67 28 31 29 2c | on;...%plot(f_g*XXu(1,:)+c_g(1), |
13ac0 | 66 5f 67 2a 58 58 75 28 32 2c 3a 29 2b 63 5f 67 28 32 29 2c 27 72 6f 27 29 3b 0a 09 20 70 6c 6f | f_g*XXu(2,:)+c_g(2),'ro');...plo |
13ae0 | 74 28 58 58 28 31 2c 3a 29 2c 58 58 28 32 2c 3a 29 2c 27 72 2b 27 29 3b 0a 09 20 74 69 74 6c 65 | t(XX(1,:),XX(2,:),'r+');...title |
13b00 | 28 27 54 68 65 20 72 65 64 20 63 72 6f 73 73 65 73 20 73 68 6f 75 6c 64 20 62 65 20 6f 6e 20 74 | ('The.red.crosses.should.be.on.t |
13b20 | 68 65 20 67 72 69 64 20 63 6f 72 6e 65 72 73 2e 2e 2e 27 29 3b 0a 09 20 68 6f 6c 64 20 6f 66 66 | he.grid.corners...');...hold.off |
13b40 | 3b 0a 09 20 0a 09 20 73 61 74 69 73 5f 64 69 73 74 6f 72 74 20 3d 20 69 6e 70 75 74 28 27 53 61 | ;......satis_distort.=.input('Sa |
13b60 | 74 69 73 66 69 65 64 20 77 69 74 68 20 64 69 73 74 6f 72 74 69 6f 6e 3f 20 28 5b 5d 3d 6e 6f 2c | tisfied.with.distortion?.([]=no, |
13b80 | 20 6f 74 68 65 72 3d 79 65 73 29 20 27 29 3b 0a 09 20 0a 09 20 73 61 74 69 73 5f 64 69 73 74 6f | .other=yes).');......satis_disto |
13ba0 | 72 74 20 3d 20 7e 69 73 65 6d 70 74 79 28 73 61 74 69 73 5f 64 69 73 74 6f 72 74 29 3b 0a 09 20 | rt.=.~isempty(satis_distort);... |
13bc0 | 0a 09 20 0a 20 20 20 20 20 20 65 6e 64 3b 0a 20 20 20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 | ..........end;.................. |
13be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13c00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 73 65 6c 65 63 74 5f 73 6f 6c 5f 6e 6f 5f 63 65 6e 74 | TOOLBOX_calib/select_sol_no_cent |
13c20 | 65 72 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | er.m............................ |
13c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13c60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
13c80 | 20 20 20 31 30 33 32 20 20 36 37 36 33 30 37 30 32 33 34 20 20 31 32 37 36 33 00 20 00 00 00 00 | ...1032..6763070234..12763...... |
13ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
13e00 | 25 25 25 20 53 65 6c 65 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 61 6c 69 62 72 61 74 69 6f 6e | %%%.Selection.of.the.calibration |
13e20 | 20 73 6f 6c 75 74 69 6f 6e 20 77 69 74 68 20 63 65 6e 74 65 72 20 65 73 74 69 6d 61 74 69 6f 6e | .solution.with.center.estimation |
13e40 | 0a 0a 73 6f 6c 75 74 69 6f 6e 20 3d 20 73 6f 6c 5f 6e 6f 5f 63 65 6e 74 65 72 3b 0a 0a 25 25 25 | ..solution.=.sol_no_center;..%%% |
13e60 | 20 45 78 74 72 61 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6e 61 6c 20 69 6e 74 72 69 6e 73 | .Extraction.of.the.final.intrins |
13e80 | 69 63 20 61 6e 64 20 65 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 61 74 65 72 73 3a 0a 0a 65 78 | ic.and.extrinsic.paramaters:..ex |
13ea0 | 74 72 61 63 74 5f 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 5c | tract_parameters;...fprintf(1,'\ |
13ec0 | 6e 5c 6e 43 61 6c 69 62 72 61 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 77 69 74 68 6f 75 74 20 70 | n\nCalibration.results.without.p |
13ee0 | 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 20 65 73 74 69 6d 61 74 69 6f 6e 3a 5c 6e 5c 6e 27 29 | rincipal.point.estimation:\n\n') |
13f00 | 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 46 6f 63 61 6c 20 4c 65 6e 67 74 68 3a 20 20 20 20 20 66 | ;.fprintf(1,'Focal.Length:.....f |
13f20 | 63 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 66 63 29 3b 0a 66 70 72 | c.=.[.%3.5f...%3.5f]\n',fc);.fpr |
13f40 | 69 6e 74 66 28 31 2c 27 50 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 3a 20 20 63 63 20 3d 20 5b | intf(1,'Principal.point:..cc.=.[ |
13f60 | 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 63 63 29 3b 0a 66 70 72 69 6e 74 66 28 | .%3.5f...%3.5f]\n',cc);.fprintf( |
13f80 | 31 2c 27 44 69 73 74 6f 72 74 69 6f 6e 3a 20 20 20 20 20 20 20 6b 63 20 3d 20 5b 20 25 33 2e 35 | 1,'Distortion:.......kc.=.[.%3.5 |
13fa0 | 66 20 20 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 6b 63 | f...%3.5f...%3.5f...%3.5f]\n',kc |
13fc0 | 29 3b 20 20 20 0a 0a 0a 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 20 47 52 41 | );......%%%%%%%%%%%%%%%%%%%%.GRA |
13fe0 | 50 48 49 43 41 4c 20 4f 55 54 50 55 54 20 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 | PHICAL.OUTPUT.%%%%%%%%%%%%%%%%%% |
14000 | 25 25 25 25 25 25 0a 0a 67 72 61 70 68 6f 75 74 5f 63 61 6c 69 62 3b 0a 0a 0a 72 61 74 69 6f 6e | %%%%%%..graphout_calib;...ration |
14020 | 20 73 6f 6c 75 74 69 6f 6e 20 77 69 74 68 20 63 65 6e 74 65 72 20 65 73 74 69 6d 61 74 69 6f 6e | .solution.with.center.estimation |
14040 | 0a 0a 73 6f 6c 75 74 69 6f 6e 20 3d 20 73 6f 6c 5f 6e 6f 5f 63 65 6e 74 65 72 3b 0a 0a 25 25 25 | ..solution.=.sol_no_center;..%%% |
14060 | 20 45 78 74 72 61 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6e 61 6c 20 69 6e 74 72 69 6e 73 | .Extraction.of.the.final.intrins |
14080 | 69 63 20 61 6e 64 20 65 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 61 74 65 72 73 3a 0a 0a 65 78 | ic.and.extrinsic.paramaters:..ex |
140a0 | 74 72 61 63 74 5f 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 66 70 72 69 6e 74 66 28 31 2c 27 5c | tract_parameters;...fprintf(1,'\ |
140c0 | 6e 5c 6e 43 61 6c 69 62 72 61 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 77 69 74 68 6f 75 74 20 70 | n\nCalibration.results.without.p |
140e0 | 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 20 65 73 74 69 6d 61 74 69 6f 6e 3a 5c 6e 5c 6e 27 29 | rincipal.point.estimation:\n\n') |
14100 | 3b 0a 66 70 72 69 6e 74 66 28 31 2c 27 46 6f 63 61 6c 20 4c 65 6e 67 74 68 3a 20 20 20 20 20 66 | ;.fprintf(1,'Focal.Length:.....f |
14120 | 63 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 66 63 29 3b 0a 66 70 72 | c.=.[.%3.5f...%3.5f]\n',fc);.fpr |
14140 | 69 6e 74 66 28 31 2c 27 50 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 3a 20 20 63 63 20 3d 20 5b | intf(1,'Principal.point:..cc.=.[ |
14160 | 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 63 63 29 3b 0a 66 70 72 69 6e 74 66 28 | .%3.5f...%3.5f]\n',cc);.fprintf( |
14180 | 31 2c 27 44 69 73 74 6f 72 74 69 6f 6e 3a 20 20 20 20 20 20 20 6b 63 20 3d 20 5b 20 25 33 2e 35 | 1,'Distortion:.......kc.=.[.%3.5 |
141a0 | 66 20 20 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 6b 63 | f...%3.5f...%3.5f...%3.5f]\n',kc |
141c0 | 29 3b 20 20 20 0a 0a 0a 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 20 47 52 41 | );......%%%%%%%%%%%%%%%%%%%%.GRA |
141e0 | 50 48 49 43 41 4c 20 4f 55 54 50 55 54 20 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 | PHICAL.OUTPUT.%%%%%%%%%%%%%%%%%% |
14200 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 73 65 6c 65 63 74 5f 73 6f 6c 5f 77 69 74 68 5f 63 65 | TOOLBOX_calib/select_sol_with_ce |
14220 | 6e 74 65 72 2e 6d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | nter.m.......................... |
14240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14260 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
14280 | 20 20 20 31 30 33 31 20 20 36 37 36 33 30 37 30 32 33 35 20 20 31 33 33 32 32 00 20 00 00 00 00 | ...1031..6763070235..13322...... |
142a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
142c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
142e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
143a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
143c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
143e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14400 | 25 25 25 20 53 65 6c 65 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 61 6c 69 62 72 61 74 69 6f 6e | %%%.Selection.of.the.calibration |
14420 | 20 73 6f 6c 75 74 69 6f 6e 20 77 69 74 68 20 63 65 6e 74 65 72 20 65 73 74 69 6d 61 74 69 6f 6e | .solution.with.center.estimation |
14440 | 0a 0a 73 6f 6c 75 74 69 6f 6e 20 3d 20 73 6f 6c 5f 77 69 74 68 5f 63 65 6e 74 65 72 3b 0a 0a 25 | ..solution.=.sol_with_center;..% |
14460 | 25 25 20 45 78 74 72 61 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6e 61 6c 20 69 6e 74 72 69 | %%.Extraction.of.the.final.intri |
14480 | 6e 73 69 63 20 61 6e 64 20 65 78 74 72 69 6e 73 69 63 20 70 61 72 61 6d 61 74 65 72 73 3a 0a 0a | nsic.and.extrinsic.paramaters:.. |
144a0 | 65 78 74 72 61 63 74 5f 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 66 70 72 69 6e 74 66 28 31 2c | extract_parameters;...fprintf(1, |
144c0 | 27 5c 6e 5c 6e 43 61 6c 69 62 72 61 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 77 69 74 68 20 70 72 | '\n\nCalibration.results.with.pr |
144e0 | 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 20 65 73 74 69 6d 61 74 69 6f 6e 3a 5c 6e 5c 6e 27 29 3b | incipal.point.estimation:\n\n'); |
14500 | 0a 66 70 72 69 6e 74 66 28 31 2c 27 46 6f 63 61 6c 20 4c 65 6e 67 74 68 3a 20 20 20 20 20 66 63 | .fprintf(1,'Focal.Length:.....fc |
14520 | 20 3d 20 5b 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 66 63 29 3b 0a 66 70 72 69 | .=.[.%3.5f...%3.5f]\n',fc);.fpri |
14540 | 6e 74 66 28 31 2c 27 50 72 69 6e 63 69 70 61 6c 20 70 6f 69 6e 74 3a 20 20 63 63 20 3d 20 5b 20 | ntf(1,'Principal.point:..cc.=.[. |
14560 | 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 63 63 29 3b 0a 66 70 72 69 6e 74 66 28 31 | %3.5f...%3.5f]\n',cc);.fprintf(1 |
14580 | 2c 27 44 69 73 74 6f 72 74 69 6f 6e 3a 20 20 20 20 20 20 20 6b 63 20 3d 20 5b 20 25 33 2e 35 66 | ,'Distortion:.......kc.=.[.%3.5f |
145a0 | 20 20 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 20 20 20 25 33 2e 35 66 5d 5c 6e 27 2c 6b 63 29 | ...%3.5f...%3.5f...%3.5f]\n',kc) |
145c0 | 3b 20 20 20 0a 0a 0a 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 20 47 52 41 50 | ;......%%%%%%%%%%%%%%%%%%%%.GRAP |
145e0 | 48 49 43 41 4c 20 4f 55 54 50 55 54 20 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 | HICAL.OUTPUT.%%%%%%%%%%%%%%%%%%% |
14600 | 25 25 25 25 25 0a 0a 67 72 61 70 68 6f 75 74 5f 63 61 6c 69 62 3b 0a 0a 0a 00 00 00 00 00 00 00 | %%%%%..graphout_calib;.......... |
14620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
146a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
146c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
146e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
147a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
147c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
147e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14800 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 55 6e 57 61 72 70 50 6c 61 6e 65 2e 6d 00 00 00 00 00 | TOOLBOX_calib/UnWarpPlane.m..... |
14820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14860 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
14880 | 20 20 20 31 35 36 37 20 20 36 37 36 33 30 37 30 32 33 35 20 20 31 31 30 30 35 00 20 00 00 00 00 | ...1567..6763070235..11005...... |
148a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
148c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
148e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
149a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
149c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
149e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14a00 | 66 75 6e 63 74 69 6f 6e 20 20 5b 75 5f 68 6f 72 69 2c 75 5f 76 65 72 74 5d 20 3d 20 55 6e 57 61 | function..[u_hori,u_vert].=.UnWa |
14a20 | 72 70 50 6c 61 6e 65 28 78 31 2c 78 32 2c 78 33 2c 78 34 29 3b 0a 0a 25 20 52 65 63 6f 76 65 72 | rpPlane(x1,x2,x3,x4);..%.Recover |
14a40 | 73 20 74 68 65 20 74 77 6f 20 33 44 20 64 69 72 65 63 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 72 | s.the.two.3D.directions.of.the.r |
14a60 | 65 63 74 61 6e 67 75 6c 61 72 20 70 61 74 63 68 20 78 31 78 32 78 33 78 34 0a 25 20 78 31 20 69 | ectangular.patch.x1x2x3x4.%.x1.i |
14a80 | 73 20 74 68 65 20 6f 72 69 67 69 6e 20 70 6f 69 6e 74 2c 20 69 65 20 61 6e 79 20 70 6f 69 6e 74 | s.the.origin.point,.ie.any.point |
14aa0 | 20 6f 66 20 70 6c 61 6e 61 72 20 63 6f 6f 72 64 69 6e 61 74 65 20 28 78 2c 79 29 20 6f 6e 20 74 | .of.planar.coordinate.(x,y).on.t |
14ac0 | 68 65 0a 25 20 72 65 63 74 61 6e 67 75 6c 61 72 20 70 61 74 63 68 20 77 69 6c 6c 20 62 65 20 70 | he.%.rectangular.patch.will.be.p |
14ae0 | 72 6f 6a 65 63 74 65 64 20 6f 6e 20 74 68 65 20 69 6d 61 67 65 20 70 6c 61 6e 65 20 61 74 3a 0a | rojected.on.the.image.plane.at:. |
14b00 | 25 20 78 31 20 2b 20 78 20 2a 20 75 5f 68 6f 72 69 20 2b 20 79 20 2a 20 75 5f 76 65 72 74 0a 25 | %.x1.+.x.*.u_hori.+.y.*.u_vert.% |
14b20 | 0a 25 20 4e 6f 74 65 3a 20 75 5f 68 6f 72 69 20 61 6e 64 20 75 5f 76 65 72 74 20 61 72 65 20 61 | .%.Note:.u_hori.and.u_vert.are.a |
14b40 | 6c 73 6f 20 74 68 65 20 74 77 6f 20 76 61 6e 69 73 68 69 6e 67 20 70 6f 69 6e 74 73 2e 0a 0a 0a | lso.the.two.vanishing.points.... |
14b60 | 69 66 20 6e 61 72 67 69 6e 20 3c 20 34 2c 0a 20 20 20 0a 20 20 20 78 34 20 3d 20 78 31 28 3a 2c | if.nargin.<.4,........x4.=.x1(:, |
14b80 | 34 29 3b 0a 20 20 20 78 33 20 3d 20 78 31 28 3a 2c 33 29 3b 0a 20 20 20 78 32 20 3d 20 78 31 28 | 4);....x3.=.x1(:,3);....x2.=.x1( |
14ba0 | 3a 2c 32 29 3b 0a 20 20 20 78 31 20 3d 20 78 31 28 3a 2c 31 29 3b 0a 20 20 20 0a 65 6e 64 3b 0a | :,2);....x1.=.x1(:,1);.....end;. |
14bc0 | 0a 0a 25 20 49 6d 61 67 65 20 50 72 6f 6a 65 63 74 69 6f 6e 3a 0a 4c 31 20 3d 20 63 72 6f 73 73 | ..%.Image.Projection:.L1.=.cross |
14be0 | 28 78 31 2c 78 32 29 3b 0a 4c 32 20 3d 20 63 72 6f 73 73 28 78 34 2c 78 33 29 3b 0a 4c 33 20 3d | (x1,x2);.L2.=.cross(x4,x3);.L3.= |
14c00 | 20 63 72 6f 73 73 28 78 32 2c 78 33 29 3b 0a 4c 34 20 3d 20 63 72 6f 73 73 28 78 31 2c 78 34 29 | .cross(x2,x3);.L4.=.cross(x1,x4) |
14c20 | 3b 0a 0a 25 20 56 61 6e 69 73 68 69 6e 67 20 70 6f 69 6e 74 3a 0a 56 31 20 3d 20 63 72 6f 73 73 | ;..%.Vanishing.point:.V1.=.cross |
14c40 | 28 4c 31 2c 4c 32 29 3b 0a 56 32 20 3d 20 63 72 6f 73 73 28 4c 33 2c 4c 34 29 3b 0a 0a 25 20 48 | (L1,L2);.V2.=.cross(L3,L4);..%.H |
14c60 | 6f 72 69 7a 6f 6e 20 6c 69 6e 65 3a 0a 48 20 3d 20 63 72 6f 73 73 28 56 31 2c 56 32 29 3b 0a 0a | orizon.line:.H.=.cross(V1,V2);.. |
14c80 | 69 66 20 48 28 33 29 20 3c 20 30 2c 20 48 20 20 3d 20 2d 48 3b 20 65 6e 64 3b 0a 0a 0a 48 20 3d | if.H(3).<.0,.H..=.-H;.end;...H.= |
14ca0 | 20 48 20 2f 20 6e 6f 72 6d 28 48 29 3b 0a 0a 0a 58 31 20 3d 20 78 31 20 2f 20 64 6f 74 28 48 2c | .H./.norm(H);...X1.=.x1./.dot(H, |
14cc0 | 78 31 29 3b 0a 58 32 20 3d 20 78 32 20 2f 20 64 6f 74 28 48 2c 78 32 29 3b 0a 58 33 20 3d 20 78 | x1);.X2.=.x2./.dot(H,x2);.X3.=.x |
14ce0 | 33 20 2f 20 64 6f 74 28 48 2c 78 33 29 3b 0a 58 34 20 3d 20 78 34 20 2f 20 64 6f 74 28 48 2c 78 | 3./.dot(H,x3);.X4.=.x4./.dot(H,x |
14d00 | 34 29 3b 0a 0a 73 63 61 6c 65 20 3d 20 58 31 28 33 29 3b 0a 0a 58 31 20 3d 20 58 31 2f 73 63 61 | 4);..scale.=.X1(3);..X1.=.X1/sca |
14d20 | 6c 65 3b 0a 58 32 20 3d 20 58 32 2f 73 63 61 6c 65 3b 0a 58 33 20 3d 20 58 33 2f 73 63 61 6c 65 | le;.X2.=.X2/scale;.X3.=.X3/scale |
14d40 | 3b 0a 58 34 20 3d 20 58 34 2f 73 63 61 6c 65 3b 0a 0a 0a 75 5f 68 6f 72 69 20 3d 20 58 32 20 2d | ;.X4.=.X4/scale;...u_hori.=.X2.- |
14d60 | 20 58 31 3b 0a 75 5f 76 65 72 74 20 3d 20 58 34 20 2d 20 58 31 3b 0a 00 00 00 00 00 00 00 00 00 | .X1;.u_vert.=.X4.-.X1;.......... |
14d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14e00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 77 72 69 74 65 72 61 73 2e 6d 00 00 00 00 00 00 00 00 | TOOLBOX_calib/writeras.m........ |
14e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14e60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
14e80 | 20 20 20 34 35 31 32 20 20 36 37 36 33 30 37 30 32 33 36 20 20 31 30 34 34 33 00 20 00 00 00 00 | ...4512..6763070236..10443...... |
14ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
14fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15000 | 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 72 61 73 28 66 69 6c 65 6e 61 6d 65 2c 20 69 6d 61 67 | function.writeras(filename,.imag |
15020 | 65 2c 20 6d 61 70 29 3b 0a 25 57 52 49 54 45 52 41 53 20 57 72 69 74 65 20 61 6e 20 69 6d 61 67 | e,.map);.%WRITERAS.Write.an.imag |
15040 | 65 20 66 69 6c 65 20 69 6e 20 73 75 6e 20 72 61 73 74 65 72 20 66 6f 72 6d 61 74 2e 0a 25 20 09 | e.file.in.sun.raster.format..%.. |
15060 | 20 20 57 52 49 54 45 52 41 53 28 27 69 6d 61 67 65 66 69 6c 65 2e 72 61 73 27 2c 20 69 6d 61 67 | ..WRITERAS('imagefile.ras',.imag |
15080 | 65 5f 6d 61 74 72 69 78 2c 20 6d 61 70 29 20 77 72 69 74 65 73 20 61 20 0a 25 09 20 20 22 73 75 | e_matrix,.map).writes.a..%..."su |
150a0 | 6e 2e 72 61 73 74 65 72 22 20 69 6d 61 67 65 20 66 69 6c 65 2e 0a 0a 25 09 20 20 57 72 69 74 74 | n.raster".image.file...%...Writt |
150c0 | 65 6e 20 62 79 20 54 68 6f 6d 61 73 20 4b 2e 20 4c 65 75 6e 67 20 33 2f 33 30 2f 39 33 2e 0a 25 | en.by.Thomas.K..Leung.3/30/93..% |
150e0 | 09 20 20 40 20 43 61 6c 69 66 6f 72 6e 69 61 20 49 6e 73 74 69 74 75 74 65 20 6f 66 20 54 65 63 | ...@.California.Institute.of.Tec |
15100 | 68 6e 6f 6c 6f 67 79 2e 0a 0a 0a 25 20 50 43 20 61 6e 64 20 55 4e 49 58 20 76 65 72 73 69 6f 6e | hnology....%.PC.and.UNIX.version |
15120 | 20 6f 66 20 77 72 69 74 65 72 61 73 20 2d 20 4a 65 61 6e 2d 59 76 65 73 20 42 6f 75 67 75 65 74 | .of.writeras.-.Jean-Yves.Bouguet |
15140 | 20 2d 20 44 65 63 2e 20 31 39 39 38 0a 0a 64 6f 74 20 3d 20 6d 61 78 28 66 69 6e 64 28 66 69 6c | .-.Dec..1998..dot.=.max(find(fil |
15160 | 65 6e 61 6d 65 20 3d 3d 20 27 2e 27 29 29 3b 0a 73 75 66 66 69 78 20 3d 20 66 69 6c 65 6e 61 6d | ename.==.'.'));.suffix.=.filenam |
15180 | 65 28 64 6f 74 2b 31 3a 64 6f 74 2b 33 29 3b 0a 0a 69 66 20 6e 61 72 67 69 6e 20 3c 20 33 2c 0a | e(dot+1:dot+3);..if.nargin.<.3,. |
151a0 | 20 20 20 6d 61 70 20 3d 20 5b 5d 3b 0a 65 6e 64 3b 0a 0a 69 66 28 73 74 72 63 6d 70 28 73 75 66 | ...map.=.[];.end;..if(strcmp(suf |
151c0 | 66 69 78 2c 20 27 72 61 73 27 29 29 0a 09 25 57 72 69 74 65 20 68 65 61 64 65 72 0a 0a 09 66 70 | fix,.'ras'))..%Write.header...fp |
151e0 | 20 3d 20 66 6f 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 27 77 62 27 29 3b 0a 09 69 66 28 66 70 | .=.fopen(filename,.'wb');..if(fp |
15200 | 20 3c 20 30 29 20 65 72 72 6f 72 28 5b 27 43 61 6e 6e 6f 74 20 6f 70 65 6e 20 27 20 66 69 6c 65 | .<.0).error(['Cannot.open.'.file |
15220 | 6e 61 6d 65 20 27 2e 27 5d 29 2c 20 65 6e 64 0a 0a 09 5b 68 65 69 67 68 74 2c 20 77 69 64 74 68 | name.'.']),.end...[height,.width |
15240 | 5d 20 3d 20 73 69 7a 65 28 69 6d 61 67 65 29 3b 0a 09 69 6d 61 67 65 20 3d 20 69 6d 61 67 65 20 | ].=.size(image);..image.=.image. |
15260 | 2d 20 31 3b 0a 09 6d 61 70 73 69 7a 65 20 3d 20 73 69 7a 65 28 6d 61 70 2c 20 31 29 2a 73 69 7a | -.1;..mapsize.=.size(map,.1)*siz |
15280 | 65 28 6d 61 70 2c 32 29 3b 0a 09 25 66 77 72 69 74 65 28 66 70 2c 20 2e 2e 2e 0a 09 25 20 20 20 | e(map,2);..%fwrite(fp,......%... |
152a0 | 20 20 20 20 5b 31 35 30 34 30 37 38 34 38 35 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 | ....[1504078485,.width,.height,. |
152c0 | 38 2c 20 68 65 69 67 68 74 2a 77 69 64 74 68 2c 20 31 2c 20 31 2c 20 6d 61 70 73 69 7a 65 5d 2c | 8,.height*width,.1,.1,.mapsize], |
152e0 | 20 2e 2e 2e 0a 20 20 20 25 20 20 20 20 20 20 20 27 6c 6f 6e 67 27 29 3b 0a 20 20 20 0a 20 20 20 | ........%.......'long');........ |
15300 | 0a 20 20 20 7a 65 72 6f 5f 73 74 72 20 3d 20 27 30 30 30 30 30 30 30 30 27 3b 0a 20 20 20 0a 20 | ....zero_str.=.'00000000';...... |
15320 | 20 20 25 20 4d 41 47 49 43 20 4e 55 4d 42 45 52 3a 0a 20 20 20 0a 0a 09 66 77 72 69 74 65 28 66 | ..%.MAGIC.NUMBER:.......fwrite(f |
15340 | 70 2c 38 39 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 31 36 36 2c | p,89,'uchar');....fwrite(fp,166, |
15360 | 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 31 30 36 2c 27 75 63 68 61 | 'uchar');....fwrite(fp,106,'ucha |
15380 | 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 31 34 39 2c 27 75 63 68 61 72 27 29 3b 0a | r');....fwrite(fp,149,'uchar');. |
153a0 | 0a 20 20 20 77 69 64 74 68 5f 73 74 72 20 3d 20 64 65 63 32 68 65 78 28 77 69 64 74 68 29 3b 0a | ....width_str.=.dec2hex(width);. |
153c0 | 09 77 69 64 74 68 5f 73 74 72 20 3d 20 5b 7a 65 72 6f 5f 73 74 72 28 31 3a 38 2d 6c 65 6e 67 74 | .width_str.=.[zero_str(1:8-lengt |
153e0 | 68 28 77 69 64 74 68 5f 73 74 72 29 29 20 77 69 64 74 68 5f 73 74 72 5d 3b 0a 20 20 20 0a 20 20 | h(width_str)).width_str];....... |
15400 | 20 66 6f 72 20 69 69 20 3d 20 31 3a 32 3a 37 2c 0a 20 20 20 09 66 77 72 69 74 65 28 66 70 2c 68 | .for.ii.=.1:2:7,.....fwrite(fp,h |
15420 | 65 78 32 64 65 63 28 77 69 64 74 68 5f 73 74 72 28 69 69 3a 69 69 2b 31 29 29 2c 27 75 63 68 61 | ex2dec(width_str(ii:ii+1)),'ucha |
15440 | 72 27 29 3b 0a 09 65 6e 64 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 68 65 69 67 68 74 5f 73 74 72 | r');..end;............height_str |
15460 | 20 3d 20 64 65 63 32 68 65 78 28 68 65 69 67 68 74 29 3b 0a 09 68 65 69 67 68 74 5f 73 74 72 20 | .=.dec2hex(height);..height_str. |
15480 | 3d 20 5b 7a 65 72 6f 5f 73 74 72 28 31 3a 38 2d 6c 65 6e 67 74 68 28 68 65 69 67 68 74 5f 73 74 | =.[zero_str(1:8-length(height_st |
154a0 | 72 29 29 20 68 65 69 67 68 74 5f 73 74 72 5d 3b 0a 20 20 20 0a 20 20 20 66 6f 72 20 69 69 20 3d | r)).height_str];........for.ii.= |
154c0 | 20 31 3a 32 3a 37 2c 0a 20 20 20 09 66 77 72 69 74 65 28 66 70 2c 68 65 78 32 64 65 63 28 68 65 | .1:2:7,.....fwrite(fp,hex2dec(he |
154e0 | 69 67 68 74 5f 73 74 72 28 69 69 3a 69 69 2b 31 29 29 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 | ight_str(ii:ii+1)),'uchar');.... |
15500 | 65 6e 64 3b 0a 20 20 20 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 | end;........fwrite(fp,0,'uchar') |
15520 | 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 | ;....fwrite(fp,0,'uchar');....fw |
15540 | 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 | rite(fp,0,'uchar');....fwrite(fp |
15560 | 2c 38 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 0a 20 20 20 6c 6c 20 3d 20 68 65 69 67 68 74 2a | ,8,'uchar');........ll.=.height* |
15580 | 77 69 64 74 68 3b 0a 20 20 20 6c 6c 5f 73 74 72 20 3d 20 64 65 63 32 68 65 78 28 6c 6c 29 3b 0a | width;....ll_str.=.dec2hex(ll);. |
155a0 | 20 20 20 6c 6c 5f 73 74 72 20 3d 20 5b 7a 65 72 6f 5f 73 74 72 28 31 3a 38 2d 6c 65 6e 67 74 68 | ...ll_str.=.[zero_str(1:8-length |
155c0 | 28 6c 6c 5f 73 74 72 29 29 20 6c 6c 5f 73 74 72 5d 3b 0a 20 20 20 0a 20 20 20 66 6f 72 20 69 69 | (ll_str)).ll_str];........for.ii |
155e0 | 20 3d 20 31 3a 32 3a 37 2c 0a 20 20 20 09 66 77 72 69 74 65 28 66 70 2c 68 65 78 32 64 65 63 28 | .=.1:2:7,.....fwrite(fp,hex2dec( |
15600 | 6c 6c 5f 73 74 72 28 69 69 3a 69 69 2b 31 29 29 2c 27 75 63 68 61 72 27 29 3b 0a 09 65 6e 64 3b | ll_str(ii:ii+1)),'uchar');..end; |
15620 | 0a 20 20 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 | .......fwrite(fp,0,'uchar');.... |
15640 | 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 | fwrite(fp,0,'uchar');....fwrite( |
15660 | 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 31 2c 27 75 | fp,0,'uchar');....fwrite(fp,1,'u |
15680 | 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b | char');....fwrite(fp,0,'uchar'); |
156a0 | 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 | ....fwrite(fp,0,'uchar');....fwr |
156c0 | 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c | ite(fp,0,'uchar');....fwrite(fp, |
156e0 | 7e 7e 6d 61 70 73 69 7a 65 2c 27 75 63 68 61 72 27 29 3b 0a 0a 20 20 20 6d 61 70 73 69 7a 65 5f | ~~mapsize,'uchar');.....mapsize_ |
15700 | 73 74 72 20 3d 20 64 65 63 32 68 65 78 28 6d 61 70 73 69 7a 65 29 3b 0a 20 20 20 6d 61 70 73 69 | str.=.dec2hex(mapsize);....mapsi |
15720 | 7a 65 5f 73 74 72 20 3d 20 5b 7a 65 72 6f 5f 73 74 72 28 31 3a 38 2d 6c 65 6e 67 74 68 28 6d 61 | ze_str.=.[zero_str(1:8-length(ma |
15740 | 70 73 69 7a 65 5f 73 74 72 29 29 20 6d 61 70 73 69 7a 65 5f 73 74 72 5d 3b 0a 20 20 20 0a 20 20 | psize_str)).mapsize_str];....... |
15760 | 20 25 6b 65 79 62 6f 61 72 64 3b 0a 20 20 20 0a 20 20 20 66 6f 72 20 69 69 20 3d 20 31 3a 32 3a | .%keyboard;........for.ii.=.1:2: |
15780 | 37 2c 0a 20 20 20 09 66 77 72 69 74 65 28 66 70 2c 68 65 78 32 64 65 63 28 6d 61 70 73 69 7a 65 | 7,.....fwrite(fp,hex2dec(mapsize |
157a0 | 5f 73 74 72 28 69 69 3a 69 69 2b 31 29 29 2c 27 75 63 68 61 72 27 29 3b 0a 09 65 6e 64 3b 0a 20 | _str(ii:ii+1)),'uchar');..end;.. |
157c0 | 0a 20 20 20 0a 09 69 66 20 6d 61 70 73 69 7a 65 20 7e 3d 20 30 0a 09 09 6d 61 70 20 3d 20 6d 69 | ......if.mapsize.~=.0...map.=.mi |
157e0 | 6e 28 32 35 35 2c 20 66 69 78 28 32 35 35 2a 6d 61 70 29 29 3b 0a 09 09 66 77 72 69 74 65 28 66 | n(255,.fix(255*map));...fwrite(f |
15800 | 70 2c 20 6d 61 70 2c 20 27 75 63 68 61 72 27 29 3b 0a 09 65 6e 64 0a 09 69 66 20 72 65 6d 28 77 | p,.map,.'uchar');..end..if.rem(w |
15820 | 69 64 74 68 2c 32 29 20 3d 3d 20 31 0a 09 09 69 6d 61 67 65 20 3d 20 5b 69 6d 61 67 65 27 3b 20 | idth,2).==.1...image.=.[image';. |
15840 | 7a 65 72 6f 73 28 31 2c 20 68 65 69 67 68 74 29 5d 27 3b 0a 09 09 74 6f 70 20 3d 20 32 35 35 20 | zeros(1,.height)]';...top.=.255. |
15860 | 2a 20 6f 6e 65 73 28 73 69 7a 65 28 69 6d 61 67 65 29 29 3b 0a 09 09 66 77 72 69 74 65 28 66 70 | *.ones(size(image));...fwrite(fp |
15880 | 2c 20 6d 69 6e 28 74 6f 70 2c 69 6d 61 67 65 29 27 2c 20 27 75 63 68 61 72 27 29 3b 0a 09 65 6c | ,.min(top,image)',.'uchar');..el |
158a0 | 73 65 0a 09 09 74 6f 70 20 3d 20 32 35 35 20 2a 20 6f 6e 65 73 28 73 69 7a 65 28 69 6d 61 67 65 | se...top.=.255.*.ones(size(image |
158c0 | 29 29 3b 0a 09 09 66 77 72 69 74 65 28 66 70 2c 20 6d 69 6e 28 74 6f 70 2c 69 6d 61 67 65 29 27 | ));...fwrite(fp,.min(top,image)' |
158e0 | 2c 20 27 75 63 68 61 72 27 29 3b 0a 09 65 6e 64 0a 09 66 63 6c 6f 73 65 28 66 70 29 3b 0a 65 6c | ,.'uchar');..end..fclose(fp);.el |
15900 | 73 65 0a 09 65 72 72 6f 72 28 27 49 6d 61 67 65 20 66 69 6c 65 20 6e 61 6d 65 20 6d 75 73 74 20 | se..error('Image.file.name.must. |
15920 | 65 6e 64 20 69 6e 20 65 69 74 68 65 72 20 27 27 72 61 73 27 27 20 6f 72 20 27 27 72 61 73 74 27 | end.in.either.''ras''.or.''rast' |
15940 | 27 2e 27 29 3b 0a 65 6e 64 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | '.');.end....................... |
15960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
159a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
159c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
159e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15a00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 73 74 61 72 74 75 70 2e 6d 00 00 00 00 00 00 00 00 00 | TOOLBOX_calib/startup.m......... |
15a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15a60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
15a80 | 20 20 20 20 31 30 30 20 20 36 37 36 33 30 37 31 35 31 35 20 20 31 30 32 35 33 00 20 00 00 00 00 | ....100..6763071515..10253...... |
15aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15c00 | 25 20 4d 61 69 6e 20 63 61 6d 65 72 61 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 74 6f 6f 6c 62 6f | %.Main.camera.calibration.toolbo |
15c20 | 78 3a 0a 0a 63 61 6c 69 62 5f 67 75 69 3b 0a 0a 70 61 74 68 28 70 77 64 2c 70 61 74 68 29 3b 0a | x:..calib_gui;..path(pwd,path);. |
15c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15e00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 52 45 41 44 4d 45 2e 74 78 74 00 00 00 00 00 00 00 00 | TOOLBOX_calib/README.txt........ |
15e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15e60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
15e80 | 20 20 20 36 34 36 31 20 20 36 37 36 33 32 36 35 32 32 35 20 20 31 30 31 33 34 00 20 00 00 00 00 | ...6461..6763265225..10134...... |
15ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
15fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16000 | 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | *------------------------------- |
16020 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
16040 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 0a 7c 20 20 20 20 43 | ------------------------*.|....C |
16060 | 61 6d 65 72 61 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 74 6f 6f 6c 62 6f 78 20 66 72 6f 6d 20 6d | amera.calibration.toolbox.from.m |
16080 | 75 6c 74 69 70 6c 65 20 69 6d 61 67 65 73 20 6f 66 20 61 20 70 6c 61 6e 61 72 20 70 61 74 74 65 | ultiple.images.of.a.planar.patte |
160a0 | 72 6e 20 28 69 6e 20 4d 61 74 6c 61 62 29 20 20 20 20 7c 0a 7c 20 20 20 20 20 20 20 20 20 20 20 | rn.(in.Matlab)....|.|........... |
160c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 29 20 4a 65 61 6e 2d 59 76 65 73 20 42 6f 75 67 75 | .............(c).Jean-Yves.Bougu |
160e0 | 65 74 20 2d 20 41 75 67 75 73 74 20 31 39 39 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | et.-.August.1999................ |
16100 | 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............|.|................. |
16120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
16140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
16160 | 20 20 20 20 20 20 7c 0a 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......|.|....................... |
16180 | 68 74 74 70 3a 2f 2f 77 77 77 2e 76 69 73 69 6f 6e 2e 63 61 6c 74 65 63 68 2e 65 64 75 2f 62 6f | http://www.vision.caltech.edu/bo |
161a0 | 75 67 75 65 74 6a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uguetj.......................... |
161c0 | 7c 0a 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | |.*----------------------------- |
161e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
16200 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2a 0a 0a 0a 0a 47 | --------------------------*....G |
16220 | 45 4e 45 52 41 4c 20 4e 4f 54 49 43 45 3a 20 54 68 65 20 4d 61 74 6c 61 62 20 4f 70 74 69 6d 69 | ENERAL.NOTICE:.The.Matlab.Optimi |
16240 | 7a 61 74 69 6f 6e 20 74 6f 6f 6c 62 6f 78 20 69 73 20 72 65 71 75 69 72 65 64 20 74 6f 20 75 73 | zation.toolbox.is.required.to.us |
16260 | 65 20 74 68 61 74 20 74 6f 6f 6c 62 6f 78 2e 0a 0a 0a 0a 49 4e 53 54 52 55 43 54 49 4f 4e 53 3a | e.that.toolbox.....INSTRUCTIONS: |
16280 | 0a 0a 31 2d 20 52 75 6e 20 6d 61 74 6c 61 62 20 75 6e 64 65 72 20 54 4f 4f 4c 42 4f 58 5f 63 61 | ..1-.Run.matlab.under.TOOLBOX_ca |
162a0 | 6c 69 62 2e 0a 20 20 20 55 6e 64 65 72 20 57 69 6e 64 6f 77 73 20 65 6e 76 69 72 6f 6e 6d 65 6e | lib.....Under.Windows.environmen |
162c0 | 74 2c 20 61 64 64 20 74 68 65 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 | t,.add.the.calibration.directory |
162e0 | 20 70 61 74 68 0a 20 20 20 74 6f 20 74 68 65 20 6d 61 69 6e 20 6d 61 74 6c 61 62 20 70 61 74 68 | .path....to.the.main.matlab.path |
16300 | 20 28 74 6f 20 68 61 76 65 20 61 63 63 65 73 73 20 74 6f 20 61 6c 6c 20 74 68 65 20 66 75 6e 63 | .(to.have.access.to.all.the.func |
16320 | 74 69 6f 6e 73 29 2e 0a 0a 32 2d 20 54 6f 20 6c 61 75 6e 63 68 20 74 68 65 20 6d 61 69 6e 20 63 | tions)...2-.To.launch.the.main.c |
16340 | 61 6d 65 72 61 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 74 6f 6f 6c 62 6f 78 20 72 75 6e 20 75 6e | amera.calibration.toolbox.run.un |
16360 | 64 65 72 20 4d 61 74 6c 61 62 3a 0a 0a 20 20 20 63 61 6c 69 62 5f 67 75 69 3b 0a 0a 20 20 20 41 | der.Matlab:.....calib_gui;.....A |
16380 | 20 6c 69 73 74 20 6f 66 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 69 73 20 61 6c 73 6f 20 67 69 | .list.of.instructions.is.also.gi |
163a0 | 76 65 6e 2e 0a 0a 33 2d 20 47 6f 20 74 6f 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 74 68 61 | ven...3-.Go.to.the.directory.tha |
163c0 | 74 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 69 6d 61 67 65 | t.contains.the.calibration.image |
163e0 | 73 2c 20 61 6e 64 0a 20 20 20 66 6f 6c 6c 6f 77 20 74 68 65 20 69 6e 73 74 72 75 63 74 69 6f 6e | s,.and....follow.the.instruction |
16400 | 73 2e 0a 0a 20 20 20 4e 4f 54 45 3a 20 54 68 65 20 69 6d 61 67 65 73 20 6d 75 73 74 20 62 65 20 | s......NOTE:.The.images.must.be. |
16420 | 69 6e 20 65 69 74 68 65 72 20 66 6f 72 6d 61 74 3a 20 72 61 73 2c 20 62 6d 70 20 6f 72 20 74 69 | in.either.format:.ras,.bmp.or.ti |
16440 | 66 2e 0a 20 20 20 20 20 20 20 20 20 54 68 65 20 69 6d 61 67 65 20 66 69 6c 65 20 6e 61 6d 65 73 | f...........The.image.file.names |
16460 | 20 6d 75 73 74 20 73 74 61 72 74 20 77 69 74 68 20 61 20 63 6f 6d 6d 6f 6e 20 62 61 73 65 6e 61 | .must.start.with.a.common.basena |
16480 | 6d 65 2c 0a 20 20 20 20 20 20 20 20 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 61 20 6e 75 6d 62 65 | me,..........followed.by.a.numbe |
164a0 | 72 2c 20 61 6e 64 20 74 68 65 20 66 69 6c 65 20 65 78 74 65 6e 73 69 6f 6e 20 28 27 72 61 73 27 | r,.and.the.file.extension.('ras' |
164c0 | 2c 20 27 62 6d 70 27 0a 20 20 20 20 20 20 20 20 20 6f 72 20 27 74 69 66 27 29 2e 0a 0a 20 20 20 | ,.'bmp'..........or.'tif')...... |
164e0 | 45 78 61 6d 70 6c 65 3a 20 49 66 20 31 35 20 74 69 66 20 69 6d 61 67 65 73 20 61 72 65 20 75 73 | Example:.If.15.tif.images.are.us |
16500 | 65 64 20 66 6f 72 20 63 61 6c 69 62 72 61 74 69 6f 6e 2c 20 77 69 74 68 20 62 61 73 65 6e 61 6d | ed.for.calibration,.with.basenam |
16520 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 63 61 6d 65 72 61 5f 63 61 6c 69 62 27 2c 20 74 68 | e.............'camera_calib',.th |
16540 | 65 6e 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 73 20 6d 61 79 20 62 65 3a 0a 0a 20 20 20 20 20 | en.the.file.names.may.be:....... |
16560 | 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 2e 74 69 66 0a 20 20 20 20 20 20 20 | .......camera_calib1.tif........ |
16580 | 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 32 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 | .....camera_calib2.tif.......... |
165a0 | 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 33 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 | ...camera_calib3.tif............ |
165c0 | 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 34 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 | .camera_calib4.tif.............c |
165e0 | 61 6d 65 72 61 5f 63 61 6c 69 62 35 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d | amera_calib5.tif.............cam |
16600 | 65 72 61 5f 63 61 6c 69 62 36 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 | era_calib6.tif.............camer |
16620 | 61 5f 63 61 6c 69 62 37 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f | a_calib7.tif.............camera_ |
16640 | 63 61 6c 69 62 38 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 | calib8.tif.............camera_ca |
16660 | 6c 69 62 39 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 | lib9.tif.............camera_cali |
16680 | 62 31 30 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 | b10.tif.............camera_calib |
166a0 | 31 31 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 | 11.tif.............camera_calib1 |
166c0 | 32 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 33 | 2.tif.............camera_calib13 |
166e0 | 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 34 2e | .tif.............camera_calib14. |
16700 | 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 35 2e 74 | tif.............camera_calib15.t |
16720 | 69 66 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 54 68 65 20 66 69 72 73 74 20 69 6d 61 67 65 20 | if..............The.first.image. |
16740 | 6e 75 6d 62 65 72 20 6d 61 79 20 62 65 20 61 6e 79 74 68 69 6e 67 20 28 31 2c 20 30 20 6f 72 20 | number.may.be.anything.(1,.0.or. |
16760 | 61 6e 79 74 68 69 6e 67 20 65 6c 73 65 29 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 6e 6f 74 | anything.else)..............Anot |
16780 | 68 65 72 20 6e 75 6d 62 65 72 69 6e 67 20 6d 61 79 20 62 65 20 75 73 65 64 20 69 66 20 6f 6e 65 | her.numbering.may.be.used.if.one |
167a0 | 20 63 68 6f 6f 73 65 73 20 74 6f 20 72 65 73 65 72 76 65 20 61 20 66 69 78 65 64 0a 20 20 20 20 | .chooses.to.reserve.a.fixed..... |
167c0 | 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 63 74 65 72 20 73 70 61 63 | ........number.of.character.spac |
167e0 | 65 73 20 66 6f 72 20 74 68 65 20 6e 75 6d 62 65 72 73 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c | es.for.the.numbers..For.example, |
16800 | 20 69 66 20 74 77 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 69 78 65 64 20 73 6c 6f 74 73 20 | .if.two.............fixed.slots. |
16820 | 61 72 65 20 72 65 73 65 72 76 65 64 20 69 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 63 61 73 | are.reserved.in.the.previous.cas |
16840 | 65 2c 20 74 68 65 20 66 69 6c 65 20 6e 61 6d 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 65 | e,.the.file.names.............be |
16860 | 63 6f 6d 65 3a 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 | come:..............camera_calib0 |
16880 | 31 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 32 | 1.tif.............camera_calib02 |
168a0 | 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 33 2e | .tif.............camera_calib03. |
168c0 | 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 34 2e 74 | tif.............camera_calib04.t |
168e0 | 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 35 2e 74 69 | if.............camera_calib05.ti |
16900 | 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 36 2e 74 69 66 | f.............camera_calib06.tif |
16920 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 37 2e 74 69 66 0a | .............camera_calib07.tif. |
16940 | 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 38 2e 74 69 66 0a 20 | ............camera_calib08.tif.. |
16960 | 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 39 2e 74 69 66 0a 20 20 | ...........camera_calib09.tif... |
16980 | 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 30 2e 74 69 66 0a 20 20 20 | ..........camera_calib10.tif.... |
169a0 | 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 31 2e 74 69 66 0a 20 20 20 20 | .........camera_calib11.tif..... |
169c0 | 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 32 2e 74 69 66 0a 20 20 20 20 20 | ........camera_calib12.tif...... |
169e0 | 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 33 2e 74 69 66 0a 20 20 20 20 20 20 | .......camera_calib13.tif....... |
16a00 | 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 34 2e 74 69 66 0a 20 20 20 20 20 20 20 | ......camera_calib14.tif........ |
16a20 | 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 31 35 2e 74 69 66 0a 0a 20 20 20 20 20 20 20 | .....camera_calib15.tif......... |
16a40 | 20 20 20 20 20 4d 6f 72 65 20 73 6c 6f 74 73 20 6d 61 79 20 62 65 20 75 73 65 64 20 61 73 20 77 | .....More.slots.may.be.used.as.w |
16a60 | 65 6c 6c 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 | ell..For.example,.the.following. |
16a80 | 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 73 20 77 6f 75 6c 64 20 73 74 69 | file.............names.would.sti |
16aa0 | 6c 6c 20 77 6f 72 6b 3a 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c | ll.work:..............camera_cal |
16ac0 | 69 62 30 30 30 31 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 61 | ib0001.tif.............camera_ca |
16ae0 | 6c 69 62 30 30 30 32 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f 63 | lib0002.tif.............camera_c |
16b00 | 61 6c 69 62 30 30 30 33 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 5f | alib0003.tif.............camera_ |
16b20 | 63 61 6c 69 62 30 30 30 34 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 61 | calib0004.tif.............camera |
16b40 | 5f 63 61 6c 69 62 30 30 30 35 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 72 | _calib0005.tif.............camer |
16b60 | 61 5f 63 61 6c 69 62 30 30 30 36 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d 65 | a_calib0006.tif.............came |
16b80 | 72 61 5f 63 61 6c 69 62 30 30 30 37 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6d | ra_calib0007.tif.............cam |
16ba0 | 65 72 61 5f 63 61 6c 69 62 30 30 30 38 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 | era_calib0008.tif.............ca |
16bc0 | 6d 65 72 61 5f 63 61 6c 69 62 30 30 30 39 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 | mera_calib0009.tif.............c |
16be0 | 61 6d 65 72 61 5f 63 61 6c 69 62 30 30 31 30 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 | amera_calib0010.tif............. |
16c00 | 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 30 31 31 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 | camera_calib0011.tif............ |
16c20 | 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 30 31 32 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 20 | .camera_calib0012.tif........... |
16c40 | 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 30 31 33 2e 74 69 66 0a 20 20 20 20 20 20 20 20 20 | ..camera_calib0013.tif.......... |
16c60 | 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 30 31 34 2e 74 69 66 0a 20 20 20 20 20 20 20 20 | ...camera_calib0014.tif......... |
16c80 | 20 20 20 20 63 61 6d 65 72 61 5f 63 61 6c 69 62 30 30 31 35 2e 74 69 66 0a 0a 0a 34 2d 20 54 68 | ....camera_calib0015.tif...4-.Th |
16ca0 | 65 20 66 69 6e 61 6c 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 72 65 73 75 6c 74 73 20 28 69 6e 74 | e.final.calibration.results.(int |
16cc0 | 72 69 6e 73 69 63 20 61 6e 64 20 65 78 74 72 69 6e 73 69 63 29 20 61 72 65 20 73 61 76 65 64 20 | rinsic.and.extrinsic).are.saved. |
16ce0 | 75 6e 64 65 72 0a 20 20 20 43 61 6c 69 62 5f 52 65 73 75 6c 74 73 2e 6d 61 74 0a 0a 0a 0a 53 65 | under....Calib_Results.mat....Se |
16d00 | 6e 64 20 79 6f 75 72 20 71 75 65 73 74 69 6f 6e 73 20 74 6f 20 62 6f 75 67 75 65 74 6a 40 76 69 | nd.your.questions.to.bouguetj@vi |
16d20 | 73 69 6f 6e 2e 63 61 6c 74 65 63 68 2e 65 64 75 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | sion.caltech.edu................ |
16d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
16fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
170a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
170c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
170e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
171a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
171c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
171e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17200 | 20 3c 20 30 29 20 65 72 72 6f 72 28 5b 27 43 61 6e 6e 6f 74 20 6f 70 65 6e 20 27 20 66 69 6c 65 | .<.0).error(['Cannot.open.'.file |
17220 | 6e 61 6d 65 20 27 2e 27 5d 29 2c 20 65 6e 64 0a 0a 09 5b 68 65 69 67 68 74 2c 20 77 69 64 74 68 | name.'.']),.end...[height,.width |
17240 | 5d 20 3d 20 73 69 7a 65 28 69 6d 61 67 65 29 3b 0a 09 69 6d 61 67 65 20 3d 20 69 6d 61 67 65 20 | ].=.size(image);..image.=.image. |
17260 | 2d 20 31 3b 0a 09 6d 61 70 73 69 7a 65 20 3d 20 73 69 7a 65 28 6d 61 70 2c 20 31 29 2a 73 69 7a | -.1;..mapsize.=.size(map,.1)*siz |
17280 | 65 28 6d 61 70 2c 32 29 3b 0a 09 25 66 77 72 69 74 65 28 66 70 2c 20 2e 2e 2e 0a 09 25 20 20 20 | e(map,2);..%fwrite(fp,......%... |
172a0 | 20 20 20 20 5b 31 35 30 34 30 37 38 34 38 35 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 | ....[1504078485,.width,.height,. |
172c0 | 38 2c 20 68 65 69 67 68 74 2a 77 69 64 74 68 2c 20 31 2c 20 31 2c 20 6d 61 70 73 69 7a 65 5d 2c | 8,.height*width,.1,.1,.mapsize], |
172e0 | 20 2e 2e 2e 0a 20 20 20 25 20 20 20 20 20 20 20 27 6c 6f 6e 67 27 29 3b 0a 20 20 20 0a 20 20 20 | ........%.......'long');........ |
17300 | 0a 20 20 20 7a 65 72 6f 5f 73 74 72 20 3d 20 27 30 30 30 30 30 30 30 30 27 3b 0a 20 20 20 0a 20 | ....zero_str.=.'00000000';...... |
17320 | 20 20 25 20 4d 41 47 49 43 20 4e 55 4d 42 45 52 3a 0a 20 20 20 0a 0a 09 66 77 72 69 74 65 28 66 | ..%.MAGIC.NUMBER:.......fwrite(f |
17340 | 70 2c 38 39 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 31 36 36 2c | p,89,'uchar');....fwrite(fp,166, |
17360 | 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 31 30 36 2c 27 75 63 68 61 | 'uchar');....fwrite(fp,106,'ucha |
17380 | 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 31 34 39 2c 27 75 63 68 61 72 27 29 3b 0a | r');....fwrite(fp,149,'uchar');. |
173a0 | 0a 20 20 20 77 69 64 74 68 5f 73 74 72 20 3d 20 64 65 63 32 68 65 78 28 77 69 64 74 68 29 3b 0a | ....width_str.=.dec2hex(width);. |
173c0 | 09 77 69 64 74 68 5f 73 74 72 20 3d 20 5b 7a 65 72 6f 5f 73 74 72 28 31 3a 38 2d 6c 65 6e 67 74 | .width_str.=.[zero_str(1:8-lengt |
173e0 | 68 28 77 69 64 74 68 5f 73 74 72 29 29 20 77 69 64 74 68 5f 73 74 72 5d 3b 0a 20 20 20 0a 20 20 | h(width_str)).width_str];....... |
17400 | 20 66 6f 72 20 69 69 20 3d 20 31 3a 32 3a 37 2c 0a 20 20 20 09 66 77 72 69 74 65 28 66 70 2c 68 | .for.ii.=.1:2:7,.....fwrite(fp,h |
17420 | 65 78 32 64 65 63 28 77 69 64 74 68 5f 73 74 72 28 69 69 3a 69 69 2b 31 29 29 2c 27 75 63 68 61 | ex2dec(width_str(ii:ii+1)),'ucha |
17440 | 72 27 29 3b 0a 09 65 6e 64 3b 0a 20 20 20 0a 20 20 20 0a 20 20 20 68 65 69 67 68 74 5f 73 74 72 | r');..end;............height_str |
17460 | 20 3d 20 64 65 63 32 68 65 78 28 68 65 69 67 68 74 29 3b 0a 09 68 65 69 67 68 74 5f 73 74 72 20 | .=.dec2hex(height);..height_str. |
17480 | 3d 20 5b 7a 65 72 6f 5f 73 74 72 28 31 3a 38 2d 6c 65 6e 67 74 68 28 68 65 69 67 68 74 5f 73 74 | =.[zero_str(1:8-length(height_st |
174a0 | 72 29 29 20 68 65 69 67 68 74 5f 73 74 72 5d 3b 0a 20 20 20 0a 20 20 20 66 6f 72 20 69 69 20 3d | r)).height_str];........for.ii.= |
174c0 | 20 31 3a 32 3a 37 2c 0a 20 20 20 09 66 77 72 69 74 65 28 66 70 2c 68 65 78 32 64 65 63 28 68 65 | .1:2:7,.....fwrite(fp,hex2dec(he |
174e0 | 69 67 68 74 5f 73 74 72 28 69 69 3a 69 69 2b 31 29 29 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 | ight_str(ii:ii+1)),'uchar');.... |
17500 | 65 6e 64 3b 0a 20 20 20 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 | end;........fwrite(fp,0,'uchar') |
17520 | 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 | ;....fwrite(fp,0,'uchar');....fw |
17540 | 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 | rite(fp,0,'uchar');....fwrite(fp |
17560 | 2c 38 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 0a 20 20 20 6c 6c 20 3d 20 68 65 69 67 68 74 2a | ,8,'uchar');........ll.=.height* |
17580 | 77 69 64 74 68 3b 0a 20 20 20 6c 6c 5f 73 74 72 20 3d 20 64 65 63 32 68 65 78 28 6c 6c 29 3b 0a | width;....ll_str.=.dec2hex(ll);. |
175a0 | 20 20 20 6c 6c 5f 73 74 72 20 3d 20 5b 7a 65 72 6f 5f 73 74 72 28 31 3a 38 2d 6c 65 6e 67 74 68 | ...ll_str.=.[zero_str(1:8-length |
175c0 | 28 6c 6c 5f 73 74 72 29 29 20 6c 6c 5f 73 74 72 5d 3b 0a 20 20 20 0a 20 20 20 66 6f 72 20 69 69 | (ll_str)).ll_str];........for.ii |
175e0 | 20 3d 20 31 3a 32 3a 37 2c 0a 20 20 20 09 66 77 72 69 74 65 28 66 70 2c 68 65 78 32 64 65 63 28 | .=.1:2:7,.....fwrite(fp,hex2dec( |
17600 | 6c 6c 5f 73 74 72 28 69 69 3a 69 69 2b 31 29 29 2c 27 75 63 68 61 72 27 29 3b 0a 09 65 6e 64 3b | ll_str(ii:ii+1)),'uchar');..end; |
17620 | 0a 20 20 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 | .......fwrite(fp,0,'uchar');.... |
17640 | 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 | fwrite(fp,0,'uchar');....fwrite( |
17660 | 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 31 2c 27 75 | fp,0,'uchar');....fwrite(fp,1,'u |
17680 | 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b | char');....fwrite(fp,0,'uchar'); |
176a0 | 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 | ....fwrite(fp,0,'uchar');....fwr |
176c0 | 69 74 65 28 66 70 2c 30 2c 27 75 63 68 61 72 27 29 3b 0a 20 20 20 66 77 72 69 74 65 28 66 70 2c | ite(fp,0,'uchar');....fwrite(fp, |
176e0 | 7e 7e 6d 61 70 73 69 7a 65 2c 27 75 63 68 61 72 27 29 3b 0a 0a 20 20 20 6d 61 70 73 69 7a 65 5f | ~~mapsize,'uchar');.....mapsize_ |
17700 | 73 74 72 20 3d 20 64 65 63 32 68 65 78 28 6d 61 70 73 69 7a 65 29 3b 0a 20 20 20 6d 61 70 73 69 | str.=.dec2hex(mapsize);....mapsi |
17720 | 7a 65 5f 73 74 72 20 3d 20 5b 7a 65 72 6f 5f 73 74 72 28 31 3a 38 2d 6c 65 6e 67 74 68 28 6d 61 | ze_str.=.[zero_str(1:8-length(ma |
17740 | 70 73 69 7a 65 5f 73 74 72 29 29 20 6d 61 70 73 69 7a 65 5f 73 74 72 5d 3b 0a 20 20 20 0a 20 20 | psize_str)).mapsize_str];....... |
17760 | 20 25 6b 65 79 62 6f 61 72 64 3b 0a 20 20 20 0a 20 20 20 66 6f 72 20 69 69 20 3d 20 31 3a 32 3a | .%keyboard;........for.ii.=.1:2: |
17780 | 37 2c 0a 20 20 20 09 66 77 72 69 74 65 28 66 70 2c 68 65 78 32 64 65 63 28 6d 61 70 73 69 7a 65 | 7,.....fwrite(fp,hex2dec(mapsize |
177a0 | 5f 73 74 72 28 69 69 3a 69 69 2b 31 29 29 2c 27 75 63 68 61 72 27 29 3b 0a 09 65 6e 64 3b 0a 20 | _str(ii:ii+1)),'uchar');..end;.. |
177c0 | 0a 20 20 20 0a 09 69 66 20 6d 61 70 73 69 7a 65 20 7e 3d 20 30 0a 09 09 6d 61 70 20 3d 20 6d 69 | ......if.mapsize.~=.0...map.=.mi |
177e0 | 6e 28 32 35 35 2c 20 66 69 78 28 32 35 35 2a 6d 61 70 29 29 3b 0a 09 09 66 77 72 69 74 65 28 66 | n(255,.fix(255*map));...fwrite(f |
17800 | 70 2c 20 6d 61 70 2c 20 27 75 63 68 61 72 27 29 3b 0a 09 65 6e 64 0a 09 69 66 20 72 65 6d 28 77 | p,.map,.'uchar');..end..if.rem(w |
17820 | 69 64 74 68 2c 32 29 20 3d 3d 20 31 0a 09 09 69 6d 61 67 65 20 3d 20 5b 69 6d 61 67 65 27 3b 20 | idth,2).==.1...image.=.[image';. |
17840 | 7a 65 72 6f 73 28 31 2c 20 68 65 69 67 68 74 29 5d 27 3b 0a 09 09 74 6f 70 20 3d 20 32 35 35 20 | zeros(1,.height)]';...top.=.255. |
17860 | 2a 20 6f 6e 65 73 28 73 69 7a 65 28 69 6d 61 67 65 29 29 3b 0a 09 09 66 77 72 69 74 65 28 66 70 | *.ones(size(image));...fwrite(fp |
17880 | 2c 20 6d 69 6e 28 74 6f 70 2c 69 6d 61 67 65 29 27 2c 20 27 75 63 68 61 72 27 29 3b 0a 09 65 6c | ,.min(top,image)',.'uchar');..el |
178a0 | 73 65 0a 09 09 74 6f 70 20 3d 20 32 35 35 20 2a 20 6f 6e 65 73 28 73 69 7a 65 28 69 6d 61 67 65 | se...top.=.255.*.ones(size(image |
178c0 | 29 29 3b 0a 09 09 66 77 72 69 74 65 28 66 70 2c 20 6d 69 6e 28 74 6f 70 2c 69 6d 61 67 65 29 27 | ));...fwrite(fp,.min(top,image)' |
178e0 | 2c 20 27 75 63 68 61 72 27 29 3b 0a 09 65 6e 64 0a 09 66 63 6c 6f 73 65 28 66 70 29 3b 0a 65 6c | ,.'uchar');..end..fclose(fp);.el |
17900 | 73 65 0a 09 65 72 72 6f 72 28 27 49 6d 61 67 65 20 66 69 6c 65 20 6e 61 6d 65 20 6d 75 73 74 20 | se..error('Image.file.name.must. |
17920 | 65 6e 64 20 69 6e 20 65 69 74 68 65 72 20 27 27 72 61 73 27 27 20 6f 72 20 27 27 72 61 73 74 27 | end.in.either.''ras''.or.''rast' |
17940 | 27 2e 27 29 3b 0a 65 6e 64 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | '.');.end....................... |
17960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
179a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
179c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
179e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17a00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 73 74 61 72 74 75 70 2e 6d 00 00 00 00 00 00 00 00 00 | TOOLBOX_calib/startup.m......... |
17a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17a60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
17a80 | 20 20 20 20 31 30 30 20 20 36 37 36 33 30 37 31 35 31 35 20 20 31 30 32 35 33 00 20 00 00 00 00 | ....100..6763071515..10253...... |
17aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17c00 | 25 20 4d 61 69 6e 20 63 61 6d 65 72 61 20 63 61 6c 69 62 72 61 74 69 6f 6e 20 74 6f 6f 6c 62 6f | %.Main.camera.calibration.toolbo |
17c20 | 78 3a 0a 0a 63 61 6c 69 62 5f 67 75 69 3b 0a 0a 70 61 74 68 28 70 77 64 2c 70 61 74 68 29 3b 0a | x:..calib_gui;..path(pwd,path);. |
17c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17e00 | 54 4f 4f 4c 42 4f 58 5f 63 61 6c 69 62 2f 52 45 41 44 4d 45 2e 74 78 74 00 00 00 00 00 00 00 00 | TOOLBOX_calib/README.txt........ |
17e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17e60 | 00 00 00 00 20 20 20 36 34 30 20 00 20 20 20 34 37 31 20 00 20 20 20 34 35 34 20 00 20 20 20 20 | .......640.....471.....454...... |
17e80 | 20 20 20 36 34 36 31 20 20 36 37 36 33 32 36 35 32 32 35 20 20 31 30 31 33 34 00 20 00 00 00 00 | ...6461..6763265225..10134...... |
17ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
17fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |