桶形畸变和枕形畸变

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

桶形畸变(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.mzph.cn/pingmian/20291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快手万合通脚本,磁力广告挂机变现项目,号称单窗口日收益10+(教程+软件)

在这个项目中,我们采用一种简便的方法来获取额外收入。比如: 1. 主账号准备:首先,确保拥有一个已开通磁力万合功能的快手主账号。账号需拥有至少一万粉丝,以确保广告收益。 2. 创建快手小号:无需粉丝基础…

每日一题《leetcode--LCR 021.删除链表的倒数第N个结点》

https://leetcode.cn/problems/SLwz0R/ 这道题我们可以设一个哨兵位,然后把要遍历链表的结点指向该哨兵位。最后用for循环将指针指向要删除结点的前一个。 struct ListNode* removeNthFromEnd(struct ListNode* head, int n){struct ListNode* dummy malloc(sizeof…

什么是成就动机?如何判断人的成就动机?

什么是成就动机? 成就动机指的是一个人追求成就的心理,对成就(成绩,目标)的渴望心理,成就动机促进我们实现个人价值,完成工作当中的任务,始终被成就动机驱使的人往往懂得吃苦耐劳&a…

通过强化学习策略进行特征选择

特征选择是构建机器学习模型过程中的决定性步骤。为模型和我们想要完成的任务选择好的特征,可以提高性能。 如果我们处理的是高维数据集,那么选择特征就显得尤为重要。它使模型能够更快更好地学习。我们的想法是找到最优数量的特征和最有意义的特征。 …

wampserver安装与汉化

wampserver安装与汉化 文章目录 wampserver安装与汉化一、安装二、汉化1.升级软件并安装补丁 介绍: WampServer是一款由法国人开发的Apache Web服务器、PHP解释器以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更…

每日一题——Python实现PAT甲级1042 Shuffling Machine(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 功能分析 时间复杂度 空间复杂度 总结 代码点评 我要更强 优化方向 …

stm32F4的时钟树

时钟其实就是单片机的心脏。首先我们的高速外部时钟(HES),看名字就可知道外部高速时钟是由外部所提供的其是高速的,其具体可以是有源晶振或者无源晶振所提供的时钟。而在时钟树图中我们从OSC_IN、OSC_OUT进入,然后经过…

【项目管理知识】项目质量管理措施

1、持续改进(PDCA) 戴明循环或称PDCA循环、PDSA循环。戴明循环的研究起源于20世纪20年代,先是有着“统计质量控制之父”之称的著名的统计学家沃特阿曼德休哈特(Walter A. Shewhart)在当时引入了“计划-执行-检查&…

低代码平台:教育机构数字化转型的技术新引擎

在数字化浪潮汹涌而来的今天,教育行业正迎来前所未有的变革。随着技术的不断进步和教育理念的更新,越来越多的教育机构开始意识到数字化转型的重要性。而在这场转型的浪潮中,低代码平台以其独特的优势,正成为教育机构实现数字化转…

7-13 字节解析(parse_byte)--PTA实验C++

一、题目描述 字节有几位都没个标准,古代程序员过的什么日子啊?还好现在字节统一成8位了。 鉴于我对C已有相当牢固的基础,可以探索底层开发了,先做个解析十六进制字节数据的功能吧。 输入规格 每项待读入的字节数据由两个非空白…

virtualbox识别windows上usb设备

当你插入 USB 时,你的宿主操作系统可以轻松访问它并使用其中的文件。如果需要VirtualBox 的虚拟机也能访问物理机的 USB设备,需要安装安装扩展包管理器。 第一步: 要安装 VirtualBox 扩展包,只需访问 VirtualBox 官方下载页面&a…

骨传导耳机哪一款比较值得入手?年度精选好用骨传导耳机推荐

现在很多年轻人都会选择用骨传导耳机,因为骨传导耳机更加方便,不用入耳,不会伤害到耳朵,对耳膜也没有什么伤害。同时,因为骨传导耳机的结构也比较简单,所以佩戴也会更加舒适。接下来就给大家推荐几款口碑不…

LabVIEW老程序功能升级:重写还是改进?

概述:面对LabVIEW老程序的功能升级,开发者常常面临重写与改进之间的选择。本文从多个角度分析两种方法的利弊,并提供评估方法和解决思路。 重写(重新开发)的优势和劣势: 优势: 代码清晰度高&a…

面试二十七、 CAS和Atomic

CAS锁机制(无锁、自旋锁、乐观锁、轻量级锁)-CSDN博客 1. ABA问题 在C中,可以使用std::atomic和版本号来解决ABA问题。C标准库没有直接提供类似Java的AtomicStampedReference,但可以通过将版本号和指针组合在一起实现类似的效果。…

ESP32-C3模组上跑通OTA升级(10)

接前一篇文章:ESP32-C3模组上跑通OTA升级(9) 八、程序调试过程中遇到的问题及解决 前边各篇文章主要讲解了OTA的基础知识以及示例代码,但这其实是(远远)不够的,真正要在ESP32-C3芯片上跑通&…

【并发程序设计】13.信号机制

13.信号机制 概念: 信号机制是Unix、类Unix以及其他POSIX兼容的操作系统中的一种进程间通讯方式,它允许进程在发生特定事件时接收通知。 信号机制是操作系统中的一个重要概念,它提供了一种异步的通知机制,用于在进程之间传递消…

【Python】解决Python报错:IndexError: queue index out of range

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

【Unity Shader入门精要 第12章】屏幕后处理效果(二)

1. 卷积 在图像处理中,卷积操作就是使用一个卷积核对一张图像中的每个像素做一系列的操作。 卷积核通常是一个四方形网格结构,如2x2、3x3的方形区域,该区域内每个方格都有一个权重值。 当对图像中的某个像素进行卷积操作时,将卷…

Linux域名解析不了/网络不可达/虚拟机连接不了的问题

记录域名解析不了/网络不可达/虚拟机连接不了的问题问题 目录 文章目录 记录域名解析不了/网络不可达/虚拟机连接不了的问题问题1.首先确定已经连接上路由器(我的就是在这嗝屁了....)1.1 查看路由表1.2查看当前的网络连接状态,包括网关1.3查看网络接口的状态&…

如何解决研发数据传输层面安全可控、可追溯的共性需求?

研发数据在企业内部跨网文件交换,是相对较为普遍而频繁的文件流转需求,基于国家法律法规要求及自身安全管理需要,许多企业进行内部网络隔离。不同企业隔离方案各不相同,比如银行内部将网络隔离为生产网、办公网、DMZ区&#xff0c…