对于Colmap的三个文件讲解
Posted 行码阁119
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于Colmap的三个文件讲解相关的知识,希望对你有一定的参考价值。
当使用Colmap进行稀疏重建时,会生成一下三个文件。
依次对每个文件进行介绍:
1、points3D.txt
# 3D point list with one line of data per point:
# POINT3D_ID, X, Y, Z, R, G, B, ERROR, TRACK[] as (IMAGE_ID, POINT2D_IDX)
# Number of points: 750, mean track length: 2.9506666666666668
1 2.4828681030642312 -5.0682527653218825 29.777528391988987 99 117 90 0.28006835886839493 1 85 3 58 2 64
393 -5.1319171487367123 2.8186788299391412 15.199595828661161 162 158 157 0.82049755044180017 1 2109 3 4269 2 4818
POINT3D_ID:三维点的id (二维点可以根据此id找到图片对应的三维点)
X, Y, Z:三维点坐标
R, G, B:三维点颜色信息
ERROR:投影误差(基于像素)
TRACK[] as (IMAGE_ID, POINT2D_IDX):对应images.txt里的图像id,以及每张图你对应特征点的id。比如说上面:1 85 3 58 2 64,意思是图片ID为1的对应images.txt里面的第85个点,ID为3的对应images.txt里面的第58个点,ID为2的对应images.txt里面的第64个点,这三个点是对应三张图的特征点,这三个点都映射到这个三维点。
看上图黑色是二维图片的数据,通过代码遍历出来,,第一列是对应点的ID ,第二列,第三列对应的是图像二维坐标,第四列对应的是三维点的ID。白色部分是points3D.txt里的数据,通过对比,查看白色倒数第二行数据,发现750对应的图片ID为1的二维点ID为11012,刚好对应上,那么此时二维点(4282.31 2555.35)对应的三维点是(4.4189599276293423 4.2638932551533149 16.150506265050332 )。
2、images.txt
# Image list with two lines of data per image:
# IMAGE_ID, QW, QX, QY, QZ, TX, TY, TZ, CAMERA_ID, NAME
# POINTS2D[] as (X, Y, POINT3D_ID)IMAGE_ID:图像ID
QW, QX, QY, QZ:四元素
TX, TY, TZ:平移向量
CAMERA_ID:相机的ID
NAME:图片的名字
四元素转换为旋转矩阵课参考:(3条消息) Cesium中的相机—四元素_云上飞47636962的博客-CSDN博客
3.cameras.txt
# Camera list with one line of data per camera:
# CAMERA_ID, MODEL, WIDTH, HEIGHT, PARAMS[]
# Number of cameras: 1
1 PINHOLE 5472 3078 3606.6260092760231 3554.1046035895465 2736 1539CAMERA_ID:相机ID
MODEL:相机名字
WIDTH:图像宽度
HEIGHT:图像高度
PARAMS[]:对应相机内参依次:(fx=fy),cx,cy;
以上是关于对于Colmap的三个文件讲解的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu20.04安装三维重建的openMVGopenMVS和colmap环境