点云数据的读取(las、txt、xyz格式)

      主要实现las格式、txt格式、xyz格式点云文件的读取及显示

      (1)las点云数据直接使用编译好的LibLAs库进行读取

                        std::ifstream ifs;
                        std::ifstream ifs;
ifs.open(path, std::ios::in | std::ios::binary);
if (!ifs)
{
cout << "打开失败!" << endl;
}
liblas::ReaderFactory f;


liblas::Reader reader = f.CreateWithStream(ifs);
liblas::Header const& header = reader.GetHeader();
double maxX = header.GetMaxX();
double minX = header.GetMinX();
double maxY = header.GetMaxY();
double minY = header.GetMinY();
double maxZ = header.GetMaxZ();
double minZ = header.GetMinZ();

                         int n=header.GetPointRecordsCount();//获取总的点数

                  double x = 0, y = 0, z = 0;
while (reader.ReadNextPoint())//循环读取las文件中的点
{
liblas::Point const& laspoint = reader.GetPoint();
x = laspoint.GetX();
y = laspoint.GetY();
z = laspoint.GetZ();

}

                       ifs.close();

         (2)txt格式与xyz格式数据的读取,主要了解其数据结构就OK啦

                     txt格式数据一般每行有3列数据,分别为点的 x,y,z坐标,可以以空格、逗号等分隔,读取的时候注意区别就行;

                    xyz格式数据一般每行有6列数据,前3列分别为点的 x,y,z坐标,后3列为点的法向量,一般以空格分隔;

                 这两种数据读取代码比较简单就不做示范了!

  • 7
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值