| 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  | ................................ |