Struct opencv_ros_camera::RosOpenCvIntrinsics[][src]

pub struct RosOpenCvIntrinsics<R: RealField> {
    pub is_opencv_compatible: bool,
    pub p: MatrixMN<R, U3, U4>,
    pub k: MatrixN<R, U3>,
    pub distortion: Distortion<R>,
    pub rect: MatrixN<R, U3>,
    // some fields omitted
}

A perspective camera model with distortion compatible with OpenCV and ROS.

This camera model is compatible with OpenCV and ROS, including stereo rectification and Brown-Conrady distortion. To load from a ROS YAML file, see the from_ros_yaml function.

See this page for an expanded definition of the parameters.

To convert from a NamedIntrinsicParameters struct, use its intrinsics field.

See the module-level documentation for more information.

Fields

is_opencv_compatible: bool

If these intrinsics have zero skew, they are “opencv compatible” and this is true.

p: MatrixMN<R, U3, U4>

The intrinsic parameter matrix P.

k: MatrixN<R, U3>

The intrinsic parameter matrix K. Scaled from P.

distortion: Distortion<R>

The non-linear distortion parameters D specifying image warping.

rect: MatrixN<R, U3>

The stereo rectification matrix.

Implementations

impl<R: RealField> RosOpenCvIntrinsics<R>[src]

pub fn from_components(
    p: MatrixMN<R, U3, U4>,
    k: MatrixN<R, U3>,
    distortion: Distortion<R>,
    rect: MatrixN<R, U3>
) -> Result<Self>
[src]

Construct intrinsics from raw components.

Returns Err(Error::InvalidInput) if rect cannot be inverted.

pub fn from_params(fx: R, skew: R, fy: R, cx: R, cy: R) -> Self[src]

Construct intrinsics from individual parameters with no distortion.

fx and fy are the horizontal and vertical focal lengths. skew is the pixel skew (typically near zero). cx and cy is the center of the optical axis in pixel coordinates.

pub fn from_params_with_distortion(
    fx: R,
    skew: R,
    fy: R,
    cx: R,
    cy: R,
    distortion: Distortion<R>
) -> Self
[src]

Construct intrinsics from individual parameters.

fx and fy are the horizontal and vertical focal lengths. skew is the pixel skew (typically near zero). cx and cy is the center of the optical axis in pixel coordinates. distortion is a vector of the distortion terms.

pub fn distort<NPTS, IN>(
    &self,
    undistorted: &UndistortedPixels<R, NPTS, IN>
) -> Pixels<R, NPTS, Owned<R, NPTS, U2>> where
    NPTS: Dim,
    IN: Storage<R, NPTS, U2>,
    DefaultAllocator: Allocator<R, NPTS, U2>, 
[src]

Convert undistorted pixel coordinates to distorted pixel coordinates.

This will take coordinates from, e.g. a linear camera model, warp them into their distorted counterparts. This distortion thus models the action of a real lens.

pub fn undistort<NPTS, IN>(
    &self,
    distorted: &Pixels<R, NPTS, IN>
) -> UndistortedPixels<R, NPTS, Owned<R, NPTS, U2>> where
    NPTS: Dim,
    IN: Storage<R, NPTS, U2>,
    DefaultAllocator: Allocator<R, NPTS, U2>, 
[src]

Convert distorted pixel coordinates to undistorted pixel coordinates.

This will take distorted coordinates from, e.g. detections from a real camera image, and undo the effect of the distortion model. This “undistortion” thus converts coordinates from a real lens into coordinates that can be used with a linear camera model.

This method calls undistort_ext using the default termination criteria.

pub fn undistort_ext<NPTS, IN>(
    &self,
    distorted: &Pixels<R, NPTS, IN>,
    criteria: impl Into<Option<TermCriteria>>
) -> UndistortedPixels<R, NPTS, Owned<R, NPTS, U2>> where
    NPTS: Dim,
    IN: Storage<R, NPTS, U2>,
    DefaultAllocator: Allocator<R, NPTS, U2>, 
[src]

Convert distorted pixel coordinates to undistorted pixel coordinates.

This will take distorted coordinates from, e.g. detections from a real camera image, and undo the effect of the distortion model. This “undistortion” thus converts coordinates from a real lens into coordinates that can be used with a linear camera model.

If the termination criteria are not specified, the default of five iterations is used.

pub fn camera_to_undistorted_pixel<IN, NPTS>(
    &self,
    camera: &Points<CameraFrame, R, NPTS, IN>
) -> UndistortedPixels<R, NPTS, Owned<R, NPTS, U2>> where
    IN: Storage<R, NPTS, U3>,
    NPTS: Dim,
    DefaultAllocator: Allocator<R, NPTS, U2>,
    DefaultAllocator: Allocator<R, U1, U2>, 
[src]

Convert 3D coordinates in CameraFrame to undistorted pixel coords.

pub fn undistorted_pixel_to_camera<IN, NPTS>(
    &self,
    undistorteds: &UndistortedPixels<R, NPTS, IN>
) -> RayBundle<CameraFrame, SharedOriginRayBundle<R>, R, NPTS, Owned<R, NPTS, U3>> where
    IN: Storage<R, NPTS, U2>,
    NPTS: Dim,
    DefaultAllocator: Allocator<R, NPTS, U3>,
    DefaultAllocator: Allocator<R, U1, U2>, 
[src]

Convert undistorted pixel coordinates to 3D coords in the CameraFrame.

Trait Implementations

impl<R: Clone + RealField> Clone for RosOpenCvIntrinsics<R>[src]

impl<R: Debug + RealField> Debug for RosOpenCvIntrinsics<R>[src]

impl<'de, R: RealField + Deserialize<'de>> Deserialize<'de> for RosOpenCvIntrinsics<R>[src]

impl<R: RealField> From<IntrinsicParametersPerspective<R>> for RosOpenCvIntrinsics<R>[src]

impl<R: RealField> IntrinsicParameters<R> for RosOpenCvIntrinsics<R>[src]

type BundleType = SharedOriginRayBundle<R>

What type of ray bundle is returned when projecting pixels to rays.

impl<R: PartialEq + RealField> PartialEq<RosOpenCvIntrinsics<R>> for RosOpenCvIntrinsics<R>[src]

impl<R: RealField + Serialize> Serialize for RosOpenCvIntrinsics<R>[src]

impl<R: RealField> StructuralPartialEq for RosOpenCvIntrinsics<R>[src]

Auto Trait Implementations

impl<R> RefUnwindSafe for RosOpenCvIntrinsics<R> where
    R: RefUnwindSafe

impl<R> Send for RosOpenCvIntrinsics<R>

impl<R> Sync for RosOpenCvIntrinsics<R>

impl<R> Unpin for RosOpenCvIntrinsics<R> where
    R: Unpin

impl<R> UnwindSafe for RosOpenCvIntrinsics<R> where
    R: UnwindSafe

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.