相机模型(Camera Model)

Perspective Camera Model

Perspective Camera Model 或 Pinhole Camera Model都是简单但是应用广泛的模型,描述了将物体从3D世界坐标系转换(World Coordinate)到2D图像坐标系(Image Coordinate)的数学映射过程。Perspective Camera Model包含了:

3D世界坐标系——>3D相机坐标系(CameraCoordinate)——>2D图像坐标系。

3D世界坐标系——>3D相机坐标系需要知道相机的外参数:相机相对于世界坐标系原点的旋转角度和平移距离。3D相机坐标系——>2D图像坐标系需要知道相机的内参数,比如相机的焦距f,2D图像坐标系的原点位置C等5个内参数。

从3D世界坐标系——>3D相机坐标系,主要是考虑到多个摄像机的情况。假如有多个摄像机从不同的位置拍摄同一个场景,则场景中某个点的世界坐标系是固定的,但是在不同的相机中,即在不同的相机坐标系中的位置是不一样的。因此,在知道摄像机外参数的条件下,通过这一步转换可以将某个特定点的世界坐标系转换到不同的相机坐标系。


以下是参考资料的原文截图:
part1
part2
part3
part4

参考博客

相机模型详解

### COLMAP 中相机模型文档与解释 #### 相机模型概述 COLMAP 支持多种相机模型,每种模型描述了不同的成像几何特性。这些模型用于校准和重建过程中,确保三维重建的准确性[^1]。 #### 文件结构 对于每一个稀疏重建项目,存在一个 `cameras.bin` 或者 `cameras.txt` 文件,具体取决于所使用的文件格式(二进制或文本)。此文件包含了所有参与重建过程的摄像设备的信息。每个条目代表一台特定的照相机,并记录其唯一标识符、采用的投影方式以及分辨率尺寸等属性[^3]。 #### 参数定义 在上述提到的摄像头配置文件里,除了基本的身份编号之外,还会指定具体的摄影装置类型及其对应的参数集: - **PINHOLE**: 这是最简单的针孔相机模型,适用于大多数标准镜头。它仅需四个额外参数——焦距 f 和主点坐标 u0,v0 来表征内参矩阵 K。 - **SIMPLE_PINHOLE**: 类似于 PINHOLE ,但是假设主点位于图像中心位置,因此只需提供单个焦距值作为输入即可完成初始化工作。 - **RADIAL**: 基础版径向畸变矫正方案,在此基础上增加了两个系数 k1,k2 用来量化由透镜引起的桶形失真效应程度;同样地,默认认为光轴穿过画面正中央。 - 更复杂的选项还包括 OPENCV_FISHEYE 等鱼眼变形处理办法,它们能够更好地适应广角视角下的特殊需求场景。 ```cpp // C++ code snippet showing how to read a camera from the cameras file. Camera ReadCamera(const std::string& path_to_cam_file, const int camera_id) { Camera cam; // Implementation details depend on whether reading .bin or .txt files... return cam; } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值