public abstract class FiducialDetectorPnP<T extends boofcv.struct.image.ImageBase<T>> extends java.lang.Object implements FiducialDetector<T>
Provides everything you need to convert a image based fiducial detector into one which can estimate the fiducial's pose given control points. The camera pose is found using a solution to the Pose-N-Point (PnP) problem.
Stability is computed by perturbing each control point by the user provided amount of disturbance. The largest delta for location and orientation is then found and saved.
| Constructor and Description |
|---|
FiducialDetectorPnP() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
computeStability(int which,
double disturbance,
FiducialStability results)
Estimates the stability by perturbing each land mark by the specified number of pixels in the distorted image.
|
protected boolean |
estimatePose(int which,
java.util.List<boofcv.struct.geo.Point2D3D> points,
georegression.struct.se.Se3_F64 fiducialToCamera)
Given the mapping of 2D observations to known 3D points estimate the pose of the fiducial.
|
protected abstract java.util.List<boofcv.struct.geo.Point2D3D> |
getControl3D(int which)
3D location of control points in the fiducial reference frame
|
abstract java.util.List<boofcv.struct.geo.PointIndex2D_F64> |
getDetectedControl(int which)
Returns a list of detected control points in the image for the specified fiducial.
|
boolean |
getFiducialToCamera(int which,
georegression.struct.se.Se3_F64 fiducialToCamera)
Used to retrieve the transformation from the fiducial's reference frame to the camera's reference frame.
|
boofcv.alg.distort.LensDistortionNarrowFOV |
getLensDistortion()
Returns the intrinsic parameters that it
|
boolean |
is3D()
If true then 3D information is available for the fiducial.
|
void |
setLensDistortion(boofcv.alg.distort.LensDistortionNarrowFOV distortion,
int width,
int height)
Specifies how to remove lens distortion from the input image and how to convert pixels into normalized
image coordinates.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdetect, getBounds, getCenter, getId, getInputType, getMessage, getWidth, hasMessage, hasUniqueID, totalFoundpublic boolean computeStability(int which,
double disturbance,
FiducialStability results)
computeStability in interface FiducialDetector<T extends boofcv.struct.image.ImageBase<T>>which - Index of which fiducial the stability is being requested fromdisturbance - Amount of the applied disturbance, in pixels. Try 0.25results - (output) Storage for stability metrics.public void setLensDistortion(boofcv.alg.distort.LensDistortionNarrowFOV distortion,
int width,
int height)
FiducialDetectorsetLensDistortion in interface FiducialDetector<T extends boofcv.struct.image.ImageBase<T>>distortion - Lens distortion model. null if you want to remove a lens distortion model that had previously
been set.width - Input image's width.height - Input image's heightpublic boofcv.alg.distort.LensDistortionNarrowFOV getLensDistortion()
FiducialDetectorgetLensDistortion in interface FiducialDetector<T extends boofcv.struct.image.ImageBase<T>>public boolean getFiducialToCamera(int which,
georegression.struct.se.Se3_F64 fiducialToCamera)
FiducialDetectorgetFiducialToCamera in interface FiducialDetector<T extends boofcv.struct.image.ImageBase<T>>which - Fiducial's indexfiducialToCamera - (output) Storage for the transform. modified.protected boolean estimatePose(int which,
java.util.List<boofcv.struct.geo.Point2D3D> points,
georegression.struct.se.Se3_F64 fiducialToCamera)
public abstract java.util.List<boofcv.struct.geo.PointIndex2D_F64> getDetectedControl(int which)
protected abstract java.util.List<boofcv.struct.geo.Point2D3D> getControl3D(int which)
public boolean is3D()
FiducialDetectorFiducialDetector.setLensDistortion(LensDistortionNarrowFOV,int,int). The following functions are then
enabled:
is3D in interface FiducialDetector<T extends boofcv.struct.image.ImageBase<T>>