retinify 0.2.0
Real-Time AI Stereo Vision Library
Loading...
Searching...
No Matches
geometry.hpp File Reference
#include "attributes.hpp"
#include <array>
#include <cstddef>
#include <cstdint>
Include dependency graph for geometry.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  retinify::Rect2< T >
 Rectangle structure. More...
 
struct  retinify::Intrinsics
 Camera intrinsic parameters with focal lengths, principal point, and skew. More...
 
struct  retinify::Distortion
 Rational distortion model with 8 coefficients: (k1, k2, p1, p2, k3, k4, k5, k6). More...
 
struct  retinify::DistortionFisheye
 Fisheye distortion model with 4 coefficients (k1, k2, k3, k4). More...
 
struct  retinify::CalibrationParameters
 Stereo camera calibration parameters. More...
 

Namespaces

namespace  retinify
 

Typedefs

using retinify::Vec2d = std::array< double, 2 >
 2D vector (double).
 
using retinify::Vec3d = std::array< double, 3 >
 3D vector (double).
 
using retinify::Point2d = std::array< double, 2 >
 2D point (double).
 
using retinify::Point3d = std::array< double, 3 >
 3D point (double).
 
using retinify::Mat3x3d = std::array< std::array< double, 3 >, 3 >
 3x3 matrix (double, row-major).
 
using retinify::Mat3x4d = std::array< std::array< double, 4 >, 3 >
 3x4 matrix (double, row-major).
 
using retinify::Mat4x4d = std::array< std::array< double, 4 >, 4 >
 4x4 matrix (double, row-major).
 
using retinify::Vec2f = std::array< float, 2 >
 2D vector (float).
 
using retinify::Vec3f = std::array< float, 3 >
 3D vector (float).
 
using retinify::Point2f = std::array< float, 2 >
 2D point (float).
 
using retinify::Point3f = std::array< float, 3 >
 3D point (float).
 
using retinify::Mat3x3f = std::array< std::array< float, 3 >, 3 >
 3x3 matrix (float, row-major).
 
using retinify::Mat3x4f = std::array< std::array< float, 4 >, 3 >
 3x4 matrix (float, row-major).
 
using retinify::Mat4x4f = std::array< std::array< float, 4 >, 4 >
 4x4 matrix (float, row-major).
 
using retinify::Rect2i = Rect2< std::int32_t >
 2D rectangle (int).
 
using retinify::Rect2d = Rect2< double >
 2D rectangle (double).
 

Functions

RETINIFY_API auto retinify::Identity () noexcept -> Mat3x3d
 Create a 3x3 identity matrix.
 
RETINIFY_API auto retinify::Determinant (const Mat3x3d &mat) noexcept -> double
 Compute the determinant of a 3x3 matrix.
 
RETINIFY_API auto retinify::Transpose (const Mat3x3d &mat) noexcept -> Mat3x3d
 Transpose a 3x3 matrix.
 
RETINIFY_API auto retinify::Multiply (const Mat3x3d &mat1, const Mat3x3d &mat2) noexcept -> Mat3x3d
 Multiply two 3x3 matrices.
 
RETINIFY_API auto retinify::Multiply (const Mat3x3d &mat, const Vec3d &vec) noexcept -> Vec3d
 Multiply a 3x3 matrix and a 3D vector.
 
RETINIFY_API auto retinify::Scale (const Vec3d &vec, double scale) noexcept -> Vec3d
 Scale a 3D vector by a scalar value.
 
RETINIFY_API auto retinify::Length (const Vec3d &vec) noexcept -> double
 Compute the length (magnitude) of a 3D vector.
 
RETINIFY_API auto retinify::Normalize (const Vec3d &vec) noexcept -> Vec3d
 Normalize a 3D vector to unit length.
 
RETINIFY_API auto retinify::Cross (const Vec3d &vec1, const Vec3d &vec2) noexcept -> Vec3d
 Compute the cross product of two 3D vectors.
 
RETINIFY_API auto retinify::Exp (const Vec3d &omega) noexcept -> Mat3x3d
 Compute the matrix exponential of a 3D rotation vector.
 
RETINIFY_API auto retinify::Log (const Mat3x3d &rotation) noexcept -> Vec3d
 Compute the matrix logarithm of a 3x3 rotation matrix.
 
RETINIFY_API auto retinify::UndistortPoint (const Intrinsics &intrinsics, const Distortion &distortion, const Point2d &pixel) noexcept -> Point2d
 Undistort a 2D point using the given camera intrinsics and distortion parameters.
 
RETINIFY_API auto retinify::StereoRectify (const Intrinsics &intrinsics1, const Distortion &distortion1, const Intrinsics &intrinsics2, const Distortion &distortion2, const Mat3x3d &rotation, const Vec3d &translation, std::uint32_t imageWidth, std::uint32_t imageHeight, Mat3x3d &rotation1, Mat3x3d &rotation2, Mat3x4d &projectionMatrix1, Mat3x4d &projectionMatrix2, Mat4x4d &mappingMatrix, double alpha) noexcept -> void
 Perform stereo rectification for a pair of cameras.
 
RETINIFY_API auto retinify::InitUndistortRectifyMap (const Intrinsics &intrinsics, const Distortion &distortion, const Mat3x3d &rotation, const Mat3x4d &projectionMatrix, std::uint32_t imageWidth, std::uint32_t imageHeight, float *mapx, std::size_t mapxStride, float *mapy, std::size_t mapyStride) noexcept -> void
 Initialize undistort and rectify maps for image remapping.
 
RETINIFY_API auto retinify::InitIdentityMap (float *mapx, std::size_t mapxStride, float *mapy, std::size_t mapyStride, std::size_t imageWidth, std::size_t imageHeight) noexcept -> void
 Initialize identity maps for undistortion/rectification.