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