Expand description
§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 datageom
- computational geometry algorithms used in computer visionestimate
- estimation of models from datafeature
- feature extraction and descriptionknn
- searching for nearest neighbors in small or large datasetsoptimize
- optimizing models to best fit the data
Modules§
- camera
- Camera models
- consensus
- Consensus algorithms
- estimate
- Estimation algorithms
- feature
- Feature detection and description algorithms
- geom
- Computational geometry algorithms
- knn
- Algorithms for performing k-NN searches
- nalgebra
- nalgebra
- optimize
- Optimization algorithms
- sample_
consensus
Structs§
- BitArray
- A constant sized array of bits.
B
defines the number of bytes. This has an alignment of 64 to maximize the efficiency of SIMD operations. It will automatically utilize SIMD at runtime where possible. - Camera
Point - 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. - Camera
ToCamera - This contains a relative pose, which is a pose that transforms the
CameraPoint
of one image into the correspondingCameraPoint
of another image. This transforms the point from the camera space of cameraA
to cameraB
. - Camera
ToWorld - 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. - Feature
Match - Normalized keypoint match
- Feature
World Match - Normalized keypoint to world point match
- KeyPoint
- A point on an image frame. This type should be used when the point location is on the image frame in pixel coordinates. This means the keypoint is neither undistorted nor normalized.
- Skew3
- Contains a member of the lie algebra so(3), a representation of the tangent space of 3d rotation. This is also known as the lie algebra of the 3d rotation group SO(3).
- World
Point - 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.
- World
ToCamera - This contains a world pose, which is a pose of the world relative to the camera.
This maps
WorldPoint
intoCameraPoint
, 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.
It is also implemented for
Unit<Vector3<f64>>
if you want to pre-compute the normalized bearings for efficiency or to turn all camera models into a unified type. - Camera
Model - 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. - Image
Point - Allows the retrieval of the point on the image the feature came from.
- Metric
Point - 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.
- Multi
Consensus - 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 orthogonal 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. - Pose
- This trait is implemented by all the different poses in this library:
- Projective
- This trait is implemented for homogeneous projective 3d coordinate.
- Triangulator
Observances - This trait is for algorithms which allow you to triangulate a point from two or more observances.
Each observance is a
WorldToCamera
and aBearing
. - Triangulator
Relative - This trait allows you to take one relative pose from camera
A
to cameraB
and two bearingsa
andb
from their respective cameras to triangulate a point from the perspective of cameraA
.