Please note: I use scp to
from all those data into the current directory, that is, the data files reside
in the subdirectory "eight_point". No file/dir names changed. When
running the program, the corresponding data file automatically is accessed.
Type: ./make to produce the executalbe eightPointDrive
Type: ./eightPointDrive <name> <step>
.
<name>: is corridor, jig , or house. (jig---calibration_jig).
<step>: can be 1, 2,....or 40.
In the code, I use following number of points : 9, 10,.....3/4 * (total
number of the points), if step = 1. If step = n, then using: 9, 9+n, 9 +2n...
number of points for each step in calculating fundamental parameters / condition
numbers/average condition numbers.
For each number N of points, the program run 100 times with
different (random) N points each time just as Hartley's paper proposed.
In class EightPoint in eightPoint.cpp file, the member
function epipolarG() does everything and it is easy to be read. All the other
members fulful the functions just as their "names" suggest.
I just used Opencv to load/show/save images and draw epipolar lines.
Condition numbers and average errors are calculated following Hartley's
paper and recorded in datafile and plotted via matlab.
Some errors (print error?) in Hartley's paper in calculating point-epipolar-line
distance (average error) found and corrected.
Results:
1. Condition Number
For the House (corresponding to Hartley's fig.6)
For the "calibation_jig"
For the "corridor"
2. Average Errors (corresponding to Hartley's fig. 8)
For the "house"
For the "calibration_jig"
For the "corridor"
3. Epipolars
For the "house"
left image: 173.154 -8064.71
right image: 74.7648, -3601.55
For the "calibration_jig"
left image: 1041.2 206.131
right image: 1035.56 206.44
For the "corridor"
left image: 256.427 184.601
right image: 255.68 183.693
4. Epipolar lines (that overlay the images)
4.1 For the "house"
left image:
right image:
4.2. For the "calibration_jig"
left image
right image
4.3. For the "corridor"
left image:
right image
5. Problem:
In the case of the "house", every time after running, I got noticeable results
as in the epipolar, fundamental matrix, to some degree. The other
cases are stable.