đŸ“–
Wiki
Back to my personal website
  • Home
  • Equipment and Devices
    • 3D Printer
    • Laser Cutter
    • Motion Capture System
    • Sensors
      • RGB-D Cameras
      • Velodyne LiDAR
      • Zed Camera
      • RealSense D435i
      • IMU
    • eGPU
    • Nvidia AGX Xavier
    • CPU Benchmark
    • Installation Checklist
  • Development
    • Linux
      • Shell
      • GDB
      • Git
      • Tmux
      • Network
      • Tricks
      • Debug FAQ
    • CMake
      • Catkin Tools
      • CMakeLists
      • CMake Variables
      • CMake Commands
      • CMake: find_package()
    • ROS
      • Gazebo
      • wstool
      • roslaunch
      • rosbag
      • multi-threaded spinner
    • ROS2
      • Convert ROS1 bag to ROS2 bag
    • C++
      • C++ 11
      • C++ Examples
      • C++ Debug
      • Factory Method
      • Timing
    • Google Tools
      • GLog
      • GFlags
      • GTest
      • Style Guide
      • Clang Format
    • PCL
      • Point Type
      • Methods
      • Architecture
      • Code Explained
    • Open3D
      • Python API
      • Registration
      • Visualization
      • Tools
    • OpenCV
      • Documentation
      • Modules
    • Other Libraries
      • Eigen
      • Ceres
      • g2o
      • GTSAM
    • Website
  • Algorithm
    • SLAM
      • K-D Tree
      • Octree
      • Bag of Words
      • Distance Measures
      • Coordinate Systems
      • LOAM
      • Iterative Closest Point
      • Generalized ICP
      • Mahalanobis Distance
    • Computer Science
      • Computational Model
      • Sorting
      • Analysis
      • Complexity Classes (P, NP)
      • Divide and Conquer
      • Greedy Algorithm
      • Dynamic Programming
      • Tree
      • Graph
    • Computer Vision
      • Camera Models
      • Distortion
      • Motion Models
      • Shutter
      • Image Sensors
      • Epipolar Geometry
      • Multiple-View Geometry
    • Datasets
      • RGB-D Datasets
      • Point Cloud Datasets
      • LiDAR SLAM Datasets
  • Math
    • Optimization
      • Convex Optimization
      • Descent Methods
    • Probability
      • Moment
      • Covariance Matrix
      • Stochastic Process
    • Topology
      • References
      • Concepts
      • Topological Spaces
      • Representation of Rotations
      • Representation of 3-sphere
    • Algebra
      • Linear Algebra
      • Matrix Factorization
      • Condition Number
      • Matrix Lie Group
    • Differential Geometry
      • Manifold
      • Submanifold
      • Quotient Manifolds
      • Tangent Space
  • Quadrotor
    • PX4 Development
    • Companion Computer
    • Drone Hardware
    • Propeller Lock
    • Debug
  • Favorites
    • Bookmarks
Powered by GitBook
On this page
  • Radial distortion
  • Tangential distortion

Was this helpful?

  1. Algorithm
  2. Computer Vision

Distortion

PreviousCamera ModelsNextMotion Models

Last updated 3 years ago

Was this helpful?

Assuming the camera model is pinhole, according to Brown's distortion model, there are two types of common distortions: radial distortion and tangential distortion.

Radial distortion

  • The most commonly encountered distortions are radially symmetric, due to the symmetry of a photographic lens. These radial distortions can be classified as either barrel distortions or pincushion distortions.

    • Barrel distortion: image magnification decreases with distance from the optical axis.

    • Pincushion distortion: image magnification increases with distance from the optical axis.

  • Mathematically, barrel and pincushion distortion are quadratic, meaning they increase as the square of distance from the center. We can model it with three parameters: k1,k2,k3k_1, k_2, k_3k1​,k2​,k3​.

xdistorted =x(1+k1r2+k2r4+k3r6)ydistorted =y(1+k1r2+k2r4+k3r6)x_{\text {distorted }}=x\left(1+k_{1} r^{2}+k_{2} r^{4}+k_{3} r^{6}\right) \\ y_{\text {distorted }}=y\left(1+k_{1} r^{2}+k_{2} r^{4}+k_{3} r^{6}\right)xdistorted ​=x(1+k1​r2+k2​r4+k3​r6)ydistorted ​=y(1+k1​r2+k2​r4+k3​r6)

Tangential distortion

  • Tangential distortion can happen when the lens is not fully parallel to the image plane.

  • Mathematically, we can model this distortion with two parameters: p1,p2p_1, p_2p1​,p2​.

xdistorted =x+2p1xy+p2(r2+2x2)ydistorted =y+p1(r2+2y2)+2p2xyx_{\text {distorted }}=x+2 p_{1} x y+p_{2}\left(r^{2}+2 x^{2}\right) \\ y_{\text {distorted }}=y+p_{1}\left(r^{2}+2 y^{2}\right)+2 p_{2} x yxdistorted ​=x+2p1​xy+p2​(r2+2x2)ydistorted ​=y+p1​(r2+2y2)+2p2​xy

References

  • 14 Lectures in Visual SLAM

https://en.wikipedia.org/wiki/Distortion_(optics)