pcd转ply后在meshlab无法打开,提示 Error details: Unespected eof

1. Problem

有一个pcd格式的点云文件,用pcd_viewer可以正常显示,但是想在meshlab里面做些编辑,发现无法打开,提示如下的错误
error

然后用vimgedit来打开它,就会发现问题,有些点云文件很大,可能卡死在半路,但是我这个点云文件很小,用gedit test2.ply,显示如下:
ply可见,都是乱码的错误,所以可以推断,从pcd转成ply的过程处问题了。一般我们都是用pcl_pcd2ply ./1650511200.015289296.pcd ./test2.ply来转换pcd和ply,所以可以确定的是这个指令是没问题的,所以问题出在pcd文件那里。如果平时有留意导入pcd文件后,很多人都会做一个去除NAN值的操作,这一点其实很关键,因为在pcd文件里,确实会保存一些NAN值,而如果我们不先去除它们,直接转成ply文件,就会出现上述的情况,知道原因后,解决就简单了。

2. Solution

思路是:在pcd转ply前,先做一次去除NAN值操作,然后在进行转换,就没问题了。以下是实现代码:

int PCD2PLY_W_removeNAN(string pcdPath, string savePath)
    pcl::PCLPointCloud2 cloud_ori;
    if (loadPCDFile(pcdPath, cloud_ori) < 0)
    {
        cout << "Error: cannot load the PCD file!!!" << endl;
        return -1;
    }
    // remove NaN type points
    //依赖函数 #include <pcl/filters/filter.h>
    std::vector<int> mapping;
    pcl::removeNaNFromPointCloud(*cloud_ori, *cloud_ori, mapping);
    string savePath = "/home/will/test1.ply";
    pcl::PLYWriter writer;
    writer.write(savePath,*cloud_ori);
    return 0;
}

这时生成的test1.ply就能在meshlab顺利打开了。
fixed

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值