OpenCV相机标定与3D重建(2)鱼眼相机模型

devtools/2024/11/14 1:58:22/
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

鱼眼相机是一种具有非常宽视野的相机,通常会产生强烈的径向畸变。鱼眼相机模型旨在捕捉这种畸变,以便能够准确地处理和校正图像。鱼眼相机模型通常使用多项式函数来描述径向畸变。

定义:设P是世界参考系中的一个3D点,其坐标为X(存储在矩阵X中)。点P在相机参考系中的坐标向量为:
X c = R X + T X_c = R X + T Xc=RX+T
其中R是对应于旋转向量ω的旋转矩阵: R = r o d r i g u e s ( ω ) R=rodrigues(ω) R=rodrigues(ω);称 x , y , z x,y,z x,y,z X c Xc Xc的三个坐标:
x = X c 1 y = X c 2 z = X c 3 x = X_{c1} \\ y = X_{c2} \\ z = X_{c3} x=Xc1y=Xc2z=Xc3
针孔投影坐标P为[a;b],其中
a = x z 和 b = y z a = \frac{x}{z} \quad \text{和} \quad b = \frac{y}{z} a=zxb=zy
r 2 = a 2 + b 2 和 θ = arctan ⁡ ( r ) r^2 = a^2 + b^2 \quad \text{和} \quad \theta = \arctan(r) r2=a2+b2θ=arctan(r)
鱼眼畸变:
θ d = θ ( 1 + k 1 θ 2 + k 2 θ 4 + k 3 θ 6 + k 4 θ 8 ) \theta_d = \theta (1 + k_1 \theta^2 + k_2 \theta^4 + k_3 \theta^6 + k_4 \theta^8) θd=θ(1+k1θ2+k2θ4+k3θ6+k4θ8)
畸变点的坐标为 [ x ′ ; y ′ ] [x′;y′] [x;y],其中
x ′ = ( θ d r ) a 和 y ′ = ( θ d r ) b x' = \left(\frac{\theta_d}{r}\right) a \quad \text{和} \quad y' = \left(\frac{\theta_d}{r}\right) b x=(rθd)ay=(rθd)b
最终转换为像素坐标:最终的像素坐标向量 [u;v]为:
u = f x ( x ′ + α y ′ ) + c x v = f y y ′ + c y u = f_x (x' + \alpha y') + c_x \\ v = f_y y' + c_y u=fx(x+αy)+cxv=fyy+cy
总结
通用相机模型 139包括透视投影,但没有畸变校正。


http://www.ppmy.cn/devtools/133398.html

相关文章

Vue 2 —Vue Router 页面导航和参数传递

当从A页面跳转到B页面的时候把数据也一起传递过去,可用Vue Router 功能: 一、. this.$router.push 方法 Vue Router 是 Vue.js 的官方路由管理器,允许你在应用中进行页面导航(即跳转到不同的 URL 路径)。 this.$rout…

aws xray通过设置采样规则对请求进行过滤

参考资料 https://github.com/aws/aws-xray-sdk-pythonpython api reference,https://docs.aws.amazon.com/xray-sdk-for-python/latest/reference/node api reference,https://docs.aws.amazon.com/xray-sdk-for-nodejs/latest/reference/ 初始化环境…

vscode Markdown

安装扩展插件 Markdown All in One Markdown Preview Enhanced Paste Image参考 Markdown 和 Visual Studio Code

8.机器学习--决策树

(⊙﹏⊙)下周有要开组会,不知道该说啥,啊啊啊啊😫 目录 1.基本概念 2.ID3算法 3.C4.5算法 4.CART算法 5.连续与缺失值处理 5.1.连续值处理 5.2.缺失值处理 6.剪枝处理 6.1.预剪枝策略 6.2.后剪枝策略 7.实例代码 1.基本概念 提…

林业遥感智能监测应用

林业遥感智能监测应用是一个结合了遥感技术、人工智能和大数据分析的综合性领域,旨在实现对森林资源的高效、精准和实时监测。以下是林业遥感智能监测应用的一些主要方面: 一、应用领域 森林资源调查与监测:通过卫星遥感影像,可以…

Openlayers10.2.1最新版在安卓Compose中使用的一个例子

题目 这是一个中小公司的面试题: Openlayers 是一个功能完善的地图引擎,能在WEB页面上显示瓦片地图或者矢量地图,官方网址是https://openlayers.org/。 1、尝试做一个安卓App,使用Openlayers显示高德或者百度在线地图&#xff0c…

Springboot启动流程之ApplicationContext 创建

在文章 Springboot3.3.5 启动流程(源码分析) 中介绍了关键流程,本文详细介绍 AnnotationConfigServletWebServerApplicationContext 的创建。 备注: 本文未作任何申明时,默认 springboot 版本为 3.3.5 AnnotationCon…

在Photoshop中填充图层颜色

一、使用油漆桶工具 选择油漆桶工具:在工具栏中找到并选择油漆桶工具(快捷键G)。选择图层:在图层面板中选择你想要填充颜色的图层。设置填充属性:在工具选项栏中,可以选择合适的填充模式、不透明度和容差值…