[][src]Crate cv

cv

Batteries-included pure-Rust computer vision crate

All of the basic computer vision types are included in the root of the crate. Modules are created to store algorithms and data structures which may or may not be used. Almost all of the things in these modules come from optional libraries. These modules comprise the core functionality required to perform computer vision tasks.

Some crates are re-exported to ensure that you can use the same version of the crate that cv is using.

Modules

  • camera - camera models to convert image coordinates into bearings (and back)
  • consensus - finding the best estimated model from noisy data
  • estimate - estimation of models from data
  • feature - feature extraction and description
  • knn - searching for nearest neighbors in small or large datasets
  • optimize - optimizing models to best fit the data

Re-exports

pub use cv_core::nalgebra;
pub use space;

Modules

camera

Camera models

consensus

Consensus algorithms

estimate

Estimation algorithms

feature

Feature detection and description algorithms

knn

Algorithms for performing k-NN searches

optimize

Optimization algorithms

Structs

CameraPoint

A 3d point which is relative to the camera's optical center and orientation where the positive X axis is right, positive Y axis is down, and positive Z axis is forwards from the optical center of the camera. The unit of distance of a CameraPoint is unspecified and relative to the current reconstruction.

CameraPose

This contains a camera pose, which is a pose of the camera relative to the world. This transforms camera points (with depth as z) into world coordinates. This also tells you where the camera is located and oriented in the world.

EssentialMatrix

This stores an essential matrix, which is satisfied by the following constraint:

FeatureMatch

Normalized keypoint match

FeatureWorldMatch

Normalized keypoint to world point match

KeyPoint

A point on an image frame. This type should only be used when the point location is on the image frame in pixel coordinates. This means the keypoint is neither undistorted nor normalized.

RelativeCameraPose

This contains a relative pose, which is a pose that transforms the CameraPoint of one image into the corresponding CameraPoint of another image. This transforms the point from the camera space of camera A to camera B.

UnscaledRelativeCameraPose

This stores a RelativeCameraPose that has not had its translation scaled.

WorldPoint

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.

WorldPose

This contains a world pose, which is a pose of the world relative to the camera. This maps WorldPoint into CameraPoint, changing an absolute position into a vector relative to the camera.

Traits

Bearing

Describes the direction that the projection onto the camera's optical center came from. It is implemented on projection items from different camera models.

CameraModel

Allows conversion between the point on an image and the internal projection which can describe the bearing of the projection out of the camera.

Consensus

A consensus algorithm extracts a consensus from an underlying model of data. This consensus includes a model of the data and which datapoints fit the model.

Estimator

An Estimator is able to create a model that best fits a set of data. It is also able to determine the residual error each data point contributes in relation to the model.

ImagePoint

Allows the retrieval of the point on the image the feature came from.

MetricPoint

This trait is implemented by points inside of a metric space.

Model

A model is a best-fit of at least some of the underlying data. You can compute residuals in respect to the model.

MultiConsensus

See Consensus. A multi-consensus can handle situations where different subsets of the data are consistent with different models. This kind of consensus also considers whether a point is part of another orthoganal model that is known before assuming it is a true outlier. In this situation there are inliers of different models and then true outliers that are actual erroneous data that should be filtered out.