[][src]Struct cv_core::WorldPoint

pub struct WorldPoint(pub Point3<f64>);

A point in "world" coordinates. This means that the real-world units of the pose are unknown, but the unit of distance and orientation are the same as the current reconstruction.

The reason that the unit of measurement is typically unknown is because if the whole world is scaled by any factor n (excluding the camera itself), then the normalized image coordinates will be exactly same on every frame. Due to this, the scaling of the world is chosen arbitrarily.

To extract the real scale of the world, a known distance between two WorldPoints must be used to scale the whole world (and all translations between cameras). At that point, the world will be appropriately scaled. It is recommended not to make the WorldPoint in the reconstruction scale to the "correct" scale. This is for two reasons:

Firstly, because it is possible for scale drift to occur due to the above situation, the further in the view graph you go from the reference measurement, the more the scale will drift from the reference. It would give a false impression that the scale is known globally when it is only known locally if the whole reconstruction was scaled.

Secondly, as the reconstruction progresses, the reference points might get rescaled as optimization of the reconstruction brings everything into global consistency. This means that, while the reference points would be initially scaled correctly, any graph optimization might cause them to drift in scale as well.

Please scale your points on-demand. When you need to know a real distance in the reconstruction, please use the closest known refenence in the view graph to scale it appropriately. In the future we will add APIs to utilize references as optimization constraints when a known reference reconstruction is present.

Trait Implementations

impl AsMut<Point<f64, U3>> for WorldPoint[src]

impl AsRef<Point<f64, U3>> for WorldPoint[src]

impl Clone for WorldPoint[src]

impl Copy for WorldPoint[src]

impl Debug for WorldPoint[src]

impl Deref for WorldPoint[src]

type Target = Point3<f64>

The resulting type after dereferencing.

impl DerefMut for WorldPoint[src]

impl From<Point<f64, U3>> for WorldPoint[src]

impl From<WorldPoint> for Point3<f64>[src]

impl PartialEq<WorldPoint> for WorldPoint[src]

impl PartialOrd<WorldPoint> for WorldPoint[src]

impl StructuralPartialEq for WorldPoint[src]

Auto Trait Implementations

impl Send for WorldPoint

impl Sync for WorldPoint

impl Unpin for WorldPoint

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Scalar for T where
    T: PartialEq<T> + Copy + Any + Debug

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,