Calibration Library 1.0.0
A C++ library for camera calibration and vision-related geometric transformations
Loading...
Searching...
No Matches
distortion.h File Reference

Lens distortion models and correction algorithms. More...

#include <algorithm>
#include <concepts>
#include <optional>
#include <span>
#include <stdexcept>
#include <vector>
#include <Eigen/Core>
#include <Eigen/Dense>
#include "calib/io/serialization.h"
#include "calib/models/camera_matrix.h"
Include dependency graph for distortion.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  calib::Observation< T >
 Observation structure for distortion parameter estimation. More...
 
struct  calib::DistortionWithResiduals< T >
 
struct  calib::BrownConrady< Scalar_ >
 
struct  calib::DualBrownConrady< Scalar_ >
 
struct  calib::DualDistortionWithResiduals
 

Namespaces

namespace  calib
 Linear multi-camera extrinsics initialisation (DLT)
 

Concepts

concept  calib::distortion_model
 Concept defining the interface for lens distortion models.
 

Typedefs

using calib::BrownConradyd = BrownConrady< double >
 
using calib::DualDistortion = DualBrownConrady< double >
 

Functions

template<typename T >
auto calib::apply_distortion (const Eigen::Matrix< T, 2, 1 > &norm_xy, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &coeffs) -> Eigen::Matrix< T, 2, 1 >
 Apply lens distortion to normalized coordinates.
 
template<typename T >
auto calib::undistort (Eigen::Matrix< T, 2, 1 > norm_xy, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &coeffs) -> Eigen::Matrix< T, 2, 1 >
 
template<typename Scalar >
auto calib::invert_brown_conrady (const Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &forward) -> Eigen::Matrix< Scalar, Eigen::Dynamic, 1 >
 
template<typename T >
auto calib::fit_distortion_full (const std::vector< Observation< T > > &observations, const CameraMatrixT< T > &intrinsics, int num_radial=2, std::span< const int > fixed_indices={}, std::span< const T > fixed_values={}) -> std::optional< DistortionWithResiduals< T > >
 
template<typename T >
auto calib::fit_distortion (const std::vector< Observation< T > > &observations, const CameraMatrixT< T > &intrinsics, int num_radial=2, std::span< const int > fixed_indices={}, std::span< const T > fixed_values={}) -> std::optional< DistortionWithResiduals< T > >
 
auto calib::fit_distortion_dual (const std::vector< Observation< double > > &observations, const CameraMatrix &intrinsics, int num_radial=2, std::span< const int > fixed_indices={}, std::span< const double > fixed_values={}) -> std::optional< DualDistortionWithResiduals >
 
void calib::to_json (nlohmann::json &j, const DualDistortion &d)
 
void calib::from_json (const nlohmann::json &j, DualDistortion &d)
 
void calib::to_json (nlohmann::json &j, const BrownConradyd &d)
 
void calib::from_json (const nlohmann::json &j, BrownConradyd &d)
 

Detailed Description

Lens distortion models and correction algorithms.

This file provides comprehensive lens distortion functionality including:

  • C++20 concept-based distortion model interface
  • Radial and tangential distortion correction
  • Forward and inverse distortion mapping
  • Linear least squares design matrix computation for distortion parameters

Definition in file distortion.h.