我正在尝试OpenStreetMap bundler程序,但我找不到相机位置数据的详细信息。点云数据位于* .ply文件中,如下所示:
ply
format ascii 1.0
element face 0
property list uchar int vertex_indices
element vertex 1340
property float x
property float y
property float z
property uchar diffuse_red
property uchar diffuse_green
property uchar diffuse_blue
end_header
-1.967914e-001 -8.918888e-001 -3.318706e+000 92 86 88
-1.745216e-001 -2.186521e-001 -3.227759e+000 50 33 31
-1.585826e-001 -1.894233e-001 -3.271651e+000 61 43 43
...
-2.649703e-003 2.197792e-002 3.906710e-002 0 255 0
-2.354721e-003 2.235805e-002 -1.093058e-002 255 255 0
5.296331e-003 4.755635e-001 -1.298959e+000 255 0 0
3.155302e-003 4.634443e-001 -1.347420e+000 255 255 0
1.910245e-003 2.891324e-001 -1.070228e-001 0 255 0
2.508708e-003 2.884968e-001 -1.570152e-001 255 255 0
-2.246127e-002 -6.257610e-001 9.884196e-001 255 0 0
-2.333330e-002 -6.187732e-001 9.389180e-001 255 255 0
最后八行似乎是四个摄像机的位置(来自四个图像)。一行是位置,第二行是方向。位置颜色为绿色或红色,方向为黄色。
我找不到关于此的信息所以我想知道这是否正确以及红色和绿色是什么意思?好/坏数据?有关使用osm-bundler结果的任何其他信息都很有帮助。
答案 0 :(得分:0)
我还在研究如何从Bundler获取相机位置数据(注意我没有使用osm-bundler
而是使用原始程序)。但是,除了输出PLY文件捆绑器外,还会输出名为bundle.out
的ASCII文件。这包含允许您计算摄像机位置的参数,如bundler documentation。
答案 1 :(得分:0)
Bundler逐步解决摄像机位置/姿势,并在bundler.out文件中输出最终答案。 .ply文件包含点云顶点,面和RGB颜色信息。 .ply文件不包含相机姿势。您可以在此处找到有关bundler.out文件的信息。 (osm-bundler使用Noah Slavely的捆绑程序,所以这个答案适用于你的两个问题)
http://www.cs.cornell.edu/~snavely/bundler/bundler-v0.4-manual.html#S6
因此,您查看第二行中的第一个数字以确定摄像机的数量。下一个数字会告诉您摄像机后面的点数。每个摄像机条目由五行组成。
<f> <k1> <k2> row one
<R> rows two, three, and four
<t> row five
因此,第一行和第二行为您提供标题信息。然后,每组五行是从摄像机编号零开始的单独摄像机条目。如果行包含零,则它们不是该摄像机/图像的数据。
如果前两行bundle.out包含
#Bundle file v0.3
16 32675
将有16个摄像头和32675个点。相机信息将在线上 3到(16 * 5 + 2)。在vi或emacs中,您可以显示行号以帮助您检查文件。 (在vi中:设置数字)请记住旋转矩阵是三行三个数字,平移三个矢量是摄像机定义的最后一行。
这些要点遵循相机定义。您可以在我上面提供的链接中找到有关积分格式的信息。