Package boofcv.alg.structure.score3d
Class ScoreFundamentalVsRotation
java.lang.Object
boofcv.alg.structure.score3d.ScoreFundamentalVsRotation
- All Implemented Interfaces:
EpipolarScore3D,VerbosePrint
Determines the amount of 3D information by comparing the results from robustly fitting a Fundamental matrix vs
fitting pure rotation/self calibration. A generic
-
Field Summary
FieldsModifier and TypeFieldDescriptionAssumes pure rotation then refines rotation and intrinsics to observationsdoubleA pair of observations are within tolerance to the model if the error is less than or equal to thisprotected final DogArray_I32protected final DMatrixRMajprotected final DMatrixRMajdoubleThe error ratio can get massive and this number prevents large values for being weighted too much in the scorefinal ConfigLengthThe minimum number of inliers for an edge to be accepted.protected final DMatrixRMajdoubleIf number of matches from fundamental divided by homography is more than this then it is considered a 3D scene -
Constructor Summary
ConstructorsConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptiondoublegetScore()Returns a score for how much 3D information there is.booleanis3D()Decides if the two views have a 3D relationship.voidprocess(CameraPinholeBrown cameraA, @Nullable CameraPinholeBrown cameraB, int featuresA, int featuresB, List<AssociatedPair> pairs, DMatrixRMaj fundamental, DogArray_I32 inliersIdx) Determines if there's a 3D relationship between the views and scores how strong it isvoidsetVerbose(@Nullable PrintStream out, @Nullable Set<String> configuration)
-
Field Details
-
ratio3D
public double ratio3DIf number of matches from fundamental divided by homography is more than this then it is considered a 3D scene -
maxRatioScore
public double maxRatioScoreThe error ratio can get massive and this number prevents large values for being weighted too much in the score -
minimumInliers
The minimum number of inliers for an edge to be accepted. If relative, then relative to pairs. -
inlierErrorTol
public double inlierErrorTolA pair of observations are within tolerance to the model if the error is less than or equal to this -
fitRotation
Assumes pure rotation then refines rotation and intrinsics to observations -
inliersRotationIdx
-
K1
-
K2
-
R
-
-
Constructor Details
-
ScoreFundamentalVsRotation
-
-
Method Details
-
process
public void process(CameraPinholeBrown cameraA, @Nullable @Nullable CameraPinholeBrown cameraB, int featuresA, int featuresB, List<AssociatedPair> pairs, DMatrixRMaj fundamental, DogArray_I32 inliersIdx) Description copied from interface:EpipolarScore3DDetermines if there's a 3D relationship between the views and scores how strong it is- Specified by:
processin interfaceEpipolarScore3D- Parameters:
cameraA- (Input) Prior information on the camera intrinsics. View A.cameraB- (Input) Prior information on the camera intrinsics. View B. If null then it's assumed the two cameras are the same.featuresA- (Input) Number of features in imageAfeaturesB- (Input) Number of features in imageBpairs- (Input) Set of point feature pairs between the two imagesfundamental- (Output) Fundamental matrix describing the geometric relationship between the two viewsinliersIdx- (Output) Which features inside of pairs are in the inlier sets
-
getScore
public double getScore()Description copied from interface:EpipolarScore3DReturns a score for how much 3D information there is. 0 = no 3D information. 1 = very strong 3D information. score is 0 to 1.- Specified by:
getScorein interfaceEpipolarScore3D- Returns:
- score
-
is3D
public boolean is3D()Description copied from interface:EpipolarScore3DDecides if the two views have a 3D relationship.- Specified by:
is3Din interfaceEpipolarScore3D- Returns:
- true if 3D or false if not
-
setVerbose
public void setVerbose(@Nullable @Nullable PrintStream out, @Nullable @Nullable Set<String> configuration) - Specified by:
setVerbosein interfaceVerbosePrint
-