openMVG_main_SfM_Localization 中 exportToPly found_pose_centers.ply 在meshlab只有单个点不显示的问题

问题

在用这个管程部分的时候,假设只求一张图片的相机外参,导出的found_pose_centers.ply 打开没有meshlab里的圈,也看不见任何的点。

请添加图片描述

省时间

右键记事本打开found_pose_centers.ply文件

ply
format ascii 1.0
element vertex 1
property double x
property double y
property double z
property uchar diffuse_red
property uchar diffuse_green
property uchar diffuse_blue
end_header
0.5966909686033824 0.0017583648858339 0.0159886514291254 255 255 255

把element vertex 1 改成 2 意思是即为两个点

最后加一行 0 0 0 255 255 255 意思是第二个点的坐标与颜色

保存打开就行

请添加图片描述

右边的三个箭头即为了好看而已。

详细一点的解释

就是meshlab至少要两个点,如果你有注意到我们的sfm_data_expanded.ply

请添加图片描述

里面打开可能除了头文件都是乱码

请添加图片描述

这个时候容易产生错误的思路,比如是不是编码问题, meshlab的问题,或者是代码的问题 等。

因为openMVG毕竟是个比较完美的项目了,所以应该不存在编码导致打不开这种问题(看了看代码

meshlab也比较完美了(别的工具又要装环境

代码的问题 我也仔细调试了一下(…

所以还是从最基本的问题上思考,ply文件是啥,header又是啥的问题 ,从meshlab贴吧帖子看分析了属性的含义。 以及一个可能的设想,单个点的坐标真的有意义吗?

代码部分
 std::cout << " Total poses found : " << vec_found_poses.size() << "/" << total_num_images << std::endl;

  // Export the found camera position in a ply.
  const std::string out_file_name = stlplus::create_filespec(sOutDir, "found_pose_centers", "ply");
  plyHelper::exportToPly(vec_found_poses, out_file_name);

  // Export found camera poses along with original reconstruction in a new sfm_data file
  ESfM_Data flag_save;
  if (bExportStructure)
  {
    flag_save = ESfM_Data(ALL);
  }
  else
  {
    flag_save = ESfM_Data(VIEWS|INTRINSICS|EXTRINSICS);
  }
  if (!Save(
    sfm_data,
    stlplus::create_filespec( sOutDir, "sfm_data_expanded.json" ).c_str(),
    flag_save))
  {
    return EXIT_FAILURE;
  }
  // export also as ply
  if (!Save(
    sfm_data,
    stlplus::create_filespec( sOutDir, "sfm_data_expanded.ply" ).c_str(),
    ESfM_Data(ALL)))
  {
    return EXIT_FAILURE;
  }

实际上之前是有多视图查找,与单视图查找两个模块的,后来被合并到一个模块也就是localization了,这个可以在github的issue找打。

以上。希望能节省你的时间。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值