Class HomographyInducedStereo2Line
Computes the homography induced by a plane from 2 line correspondences. Works with both calibrated and uncalibrated cameras. The Fundamental/Essential matrix must be known. The found homography will be from view 1 to view 2. The passed in Fundamental matrix must have the following properties for each set of point correspondences: x2*F*x1 = 0, where x1 and x2 are views of the point in image 1 and image 2 respectively.
Algorithm: For each line correspondence it finds the intersection between the two planes which define the observed lines. These planes are created by line in the image and the camera origin. From the two found lines, the equations of the plane are extracted in 3D space. This equation is then combined with information from the fundamental matrix to compute the induced homography.
NOTE: Any line which is parallel to camera baseline can't be used. The lines in both cameras will have the same slope, causing their intersection to be a plane instead of a line. This can be a significant issue since for many stereo rigs it would mean no perfectly horizontal lines can be used.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
process
(PairLineNorm line0, PairLineNorm line1) Computes the homography based on two unique lines on the planevoid
setFundamental
(DMatrixRMaj F, @Nullable Point3D_F64 e2) Specify the fundamental matrix and the camera 2 epipole.
-
Constructor Details
-
HomographyInducedStereo2Line
public HomographyInducedStereo2Line()
-
-
Method Details
-
setFundamental
Specify the fundamental matrix and the camera 2 epipole.- Parameters:
F
- Fundamental matrix.e2
- Epipole for camera 2. If null it will be computed internally.
-
process
Computes the homography based on two unique lines on the plane- Parameters:
line0
- Line on the planeline1
- Line on the plane
-
getHomography
-