桶形畸变和枕形畸变

2024-06-01 18:12
文章标签 畸变 枕形畸变

本文主要是介绍桶形畸变和枕形畸变,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

桶形畸变和枕形畸变是两种常见的光学畸变现象,主要发生在使用广角镜头或远摄镜头拍摄时。这些畸变是因为镜头的光学特性不能完美地将光线汇聚到一个共同的焦点上,导致图像的不同部分在形状上发生扭曲。下面分别对这两种畸变进行详细描述:

桶形畸变(Barrel Distortion)

定义: 桶形畸变,也称为鼓形畸变,是指图像的边缘部分向外弯曲,中心区域则相对正常或稍微凸起,整体形状类似于一个木桶的横截面。这种畸变使得直线看起来在画面的边缘处弯曲,形成一种“弓形”效果。

原因: 桶形畸变通常发生在广角镜头中,尤其是在镜头设计中为了获得更宽的视角而做出的某些光学妥协时。它是因为镜头边缘的光线相较于中心光线以更大的角度进入镜头,但未能精确汇聚到与中心光线相同的焦平面上,从而导致了边缘的放大率高于中心区域。

影响: 这种畸变在拍摄具有直线特征的场景时尤为明显,如建筑摄影、风景摄影中的水平线和垂直线会显得弯曲。

枕形畸变(Pincushion Distortion)

定义: 与桶形畸变相反,枕形畸变使得图像的边缘向内弯曲,而中心区域则显得扁平或凹陷,整体形态类似一个被压扁的枕头。这意味着原本应为直线的物体在图像的边缘区域会呈现出向内弯折的“V”字形。

原因: 枕形畸变多见于远摄镜头,尤其是长焦距镜头。这是因为远摄镜头需要更复杂的光学设计来聚焦远处的光线,这可能导致中心区域的光线汇聚位置比边缘光线更靠前,从而产生这种畸变。

影响: 枕形畸变在拍摄细节丰富、要求高精度对齐的场景时较为显著,比如产品摄影、微距摄影等,其中直线的准确再现尤为重要。

图像示例:在这里插入图片描述

去畸变公式:

x d i s t o r t e d = x ( 1 + k 1 ∗ r 2 + k 2 ∗ r 4 + k 3 ∗ r 6 ) + 2 ∗ p 1 ∗ x ∗ y + p 2 ∗ ( r 2 + 2 ∗ x 2 ) x_{distorted} = x(1 + k_1 * r^2 + k_2 * r^4 + k_3 * r^6) + 2 * p_1 * x * y + p_2 * (r^2 + 2 * x^2) xdistorted=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)
y d i s t o r t e d = y ( 1 + k 1 ∗ r 2 + k 2 ∗ r 4 + k 3 ∗ r 6 ) + p 1 ∗ ( r 2 + 2 ∗ y 2 ) + 2 ∗ p 2 ∗ x ∗ y y_{distorted} = y(1 + k_1 * r^2 + k_2 * r^4 + k_3 * r^6) + p_1 * (r^2 + 2 * y^2) + 2 * p_2 * x * y ydistorted=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy

这个公式是一个用于描述图像畸变的数学模型,通常用于计算由镜头产生的桶形畸变和枕形畸变。该模型基于多项式展开,可以用来纠正图像中的几何失真。

在这个公式中,有以下几个关键参数:

  • xy 是原始未畸变图像坐标系下的像素坐标。
  • x_distortedy_distorted 是经过畸变后的图像坐标系下的像素坐标。
  • r² = x² + y² 表示像素点到图像中心的距离平方。
  • k_1, k_2, and k_3 是表示畸变程度的系数,它们决定了畸变的程度和类型。这些系数可以通过实际测量和校准得到。
  • p_1p_2 是表示径向畸变和切向畸变的额外系数。
  1. 径向畸变 (Radial Distortion):
    • x_distorted = x(1 + k_1 r^2 + k_2 r^4 + k_3 r^6)
    • y_distorted = y(1 + k_1 r^2 + k_2 r^4 + k_3 r^6)

这部分描述的是由于透镜曲率不均匀造成的径向畸变。随着距离透镜中心越远,畸变程度越大。k_1, k_2, and k_3 分别对应第一阶、第二阶和第三阶径向畸变系数。

  1. 切向畸变 (Tangential Distortion):
    • x_distorted += 2 p_1 xy
    • y_distorted += p_1(r^2 + 2y^2) + 2 p_2 xy

这部分描述的是由于透镜平面与成像传感器平面不平行造成的切向畸变。p_1p_2 参数分别对应两个不同的切向畸变项。

通过调整这些参数,可以计算出每个像素的实际位置,并将其映射回正确的空间位置,从而实现对图像畸变的矫正。在实际应用中,这些参数通常是通过对一组已知参考点进行校准得出的。

这篇关于桶形畸变和枕形畸变的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1021747

相关文章

Ansys Speos | 挡风玻璃光学畸变分析

附件下载 联系工作人员获取附件 此示例介绍了基于 TL 957 标准和43号法规(ECE R43)的挡风玻璃光学畸变分析的工作流程,以及 GitHub Ansys 光学自动化中提供的分析自动化工具。 如果您从未使用过任何 GitHub 仓库,可以根据光学自动化库的介绍进行操作,该文章在运行以下的工作流程之前可以提供一些必备知识。 该工作流程使用了于 2023R1 发布的light expe

[C#]使用深度学习算法opencvsharp部署RecRecNet广角图像畸变矫正校正摄像广角镜头畸变图像

【论文地址】 https://arxiv.org/abs/2301.01661 【训练源码】 https://github.com/KangLiao929/RecRecNet 【参考源码】 https://github.com/hpc203/recrecnet-opencv-dnn 【算法介绍】 广角镜头在VR技术中显示出诱人的应用,但它会在捕获的图像中引入严重的径向失真。为了恢

从普通相机模型到鱼眼畸变模型--标定与去畸变

目录 普通相机模型普通成像模型针孔模型与透镜组:径向畸变切向畸变现代手机摄像头的基本组成内参矩阵 畸变模型张氏标定法 鱼眼模型透镜组r和f的进一步说明等距投影模型(OpenCV::fisheye)鱼眼图像去畸变过程 普通相机模型 普通成像模型 普通相机模型一般通过pin-hole model+径向畸变+切向畸变进行建。 针孔模型与透镜组: 针孔模型即小孔成像模型,近代的摄

C# OpenCV 部署RecRecNet广角图像畸变矫正

C# OpenCV 部署RecRecNet广角图像畸变矫正 目录 说明 效果 模型信息 项目 代码 下载 说明 ICCV2023 - RecRecNet: Rectangling Rectified Wide-Angle Images by Thin-Plate Spline Model and DoF-based Curriculum Learning 参考: ht

【自动驾驶】27.相机畸变_相机内参标定 整理

这篇文章讲解的很详细,包括在哪一步添加畸变:【自动驾驶视觉感知:相机标定】 本文整理了很多有关相机畸变博客的相关内容,都附上的原文地址,也纠正了一些其他博客的错误。 下面两张截图来自高翔博士的《视觉SLAM十四讲》书中内容。 有关添加畸变矫正以及去畸变的详细过程,可以参考 自动驾驶视觉感知:相机标定。 关于相机内参标定的请参考这篇博客:最详细、最完整的相机标定讲解。 注意,这篇博客

摄像头校准之白平衡畸变坏点

摄像头校准之白平衡&畸变&坏点 1. 源由2. 校准内容3. 畸变校准一、畸变模型二、校准步骤1. 准备工作2. 特征点检测3. 计算内参数和畸变系数4. 畸变校正 三、验证和优化1. 视觉验证2. 误差评估3. 参数优化 4. 白平衡校准一、白平衡基础二、自动白平衡(AWB)三、手动白平衡四、验证和优化 5. 坏点校准一、坏点检测1. 确定坏点类型2. 拍摄黑暗场图像3. 阈值检测 二、

相机标定中一些细节--畸变模型和参数

张正友标定方法做相机标定的主要过程是先估计每张图片的单应性矩阵,然后通过这一系列的单应性矩阵估计出内外参数初值,最后再考虑畸变模型的加入进行非线性优化。同时优化内参、外参和畸变参使得重投影误差最小。 镜头的畸变表现出来的非线性关系,通常使用一些近似的手段来建模逼近它,如下几种常见的镜头畸变模型: Brown-ConradyBrandt-KannalaCMeiDavid Scaramuzza

《实时畸变校正》

文章目录 摄像头畸变手眼标定实时畸变校正cv2.undistort & cv2.initUndistortRectifyMap + cv2.remap显示区域Error:[h264 @ 000001bf04177660] error while decoding MB 11 84, bytestream -17 多线程实时实时校正多进程实时校正参考链接 摄像头畸变 ​ 由于摄像头

【图像畸变校正】

接上篇文章:【鱼眼+普通相机】相机标定 附代码: 方法一: 使用cv2.undistort """Create May 11, 2024@author Wang Jiajun"""import cv2import numpy as npdef correct(img,camera_file='E:/calib_yaml/ship_calib.yaml'):"""矫正图像,去除畸变img

摄像机畸变模型(opencv)

摄像机畸变模型(opencv) 本人邮箱:sylvester0510@163.com,欢迎交流讨论, 欢迎转载,转载请注明网址http://blog.csdn.net/u010128736/   理想的摄像机模型是针孔模型,但是实际的镜头不符合这种假设。另外,相机的构造以及制造、安装、工艺等因素也会造成误差,导致相机通常会存在多种非线性畸变,使得上面介绍的针孔相机模型并不能准确地描