las文件格式转文本格式(Las2Txt)
来源:互联网 发布:云豹直播系统源码 编辑:程序博客网 时间:2024/05/22 20:28
前言
前段时间针对las文件写了分割为文本文件的代码及一个简单应用,现在发现并没有必要直接对las文件进行分割,完全可以将las文件转化为文本之后,根据需要再进行分割是一个更好的选择。现在将前段时间写的代码进行整理,并重新写了一个格式转换的应用进行分享。
代码
把自己写好的类包含到szw名字空间,以免和其他C++开源库中已有类名产生冲突。曾经没有过多关注这个问题,当代码量堆积如山之后,才发现这是多么的有必要!
las2txttool.h
#pragma once//////////////////////////////////////////////////////////////////////////// Time :2016/05/15// Author :Szw// CSDN :吕小猪不坏// 贴吧 :lidar//////////////////////////////////////////////////////////////////////////////class Las2TxtTool{ std::string inFileName_; int precision_;public: Las2TxtTool(void); ~Las2TxtTool(void); void setFileName(std::string _inFileName){ inFileName_=_inFileName; } void setPrecision(int _precision){ precision_=_precision; } bool las2txt();};namespace szw{ class Las2Txt: public Las2TxtTool{};}
las2txttool.cpp
#include <liblas\liblas.hpp>#include <iomanip>#include <sstream>#include "las2txttool.h"Las2TxtTool::Las2TxtTool(void){ precision_=8;}Las2TxtTool::~Las2TxtTool(void){}bool Las2TxtTool::las2txt(){ std::ifstream ifs; ifs.open(inFileName_, std::ios::in | std::ios::binary); if (ifs == NULL) { std::cout<<"File Error!"<<std::endl; return false; } liblas::ReaderFactory f ; liblas::Reader reader = f.CreateWithStream(ifs); liblas::Header const& header = reader.GetHeader(); char path_buffer[_MAX_PATH]; char drive[_MAX_DRIVE]; char dir[_MAX_DIR]; char fname[_MAX_FNAME]; char ext[_MAX_EXT]; _splitpath( inFileName_.c_str(), drive, dir, fname, ext ); std::string driveStr(drive),dirStr(dir); std::string outFilePath(driveStr+dirStr); std::cout<<outFilePath; std::string currentFileName("_ascii.txt"); std::ofstream ofile; ofile.open(outFilePath+fname+currentFileName); ofile<<"//X Y Z Intensity ReturnNumber NumberofReturns Classification ScanDirectionFlag EdgeofFlightLine ScanAngleRank PointSourceID GPSTime\n"; ofile<<std::setiosflags(std::ios::fixed); reader.Seek(0); while (reader.ReadNextPoint()) { liblas::Point const& p = reader.GetPoint(); ofile<<std::setprecision(precision_)<<p.GetX()<<" "<<p.GetY()<<" "<<p.GetZ()<<" " <<p.GetIntensity()<<" "<<p.GetReturnNumber()<<" "<<p.GetNumberOfReturns()<<" " <<p.GetClassification()<<" "<<p.GetScanDirection()<<" "<<p.GetFlightLineEdge()<<" " <<p.GetScanAngleRank()<<" "<<p.GetPointSourceID()<<" "<<p.GetTime()<<std::endl; } ofile.close(); return true;}
main.cpp
#include <iostream>#include <string>#include "las2txttool.h"void main(){ std::cout<<"las2txt..."<<std::endl; std::string inFileName; std::cout<<"Input inFileName:\n"; std::cin>>inFileName; int precis(8); std::cout<<"Input precision:\n"; std::cin>>precis; szw::Las2Txt las2Txt; las2Txt.setFileName(inFileName); las2Txt.setPrecision(precis); las2Txt.las2txt();}
应用分享
下载链接:http://download.csdn.net/detail/wokaowokaowokao12345/9520939
0 0
- las文件格式转文本格式(Las2Txt)
- 多行EXCEL身份证数据转文本格式
- Excel日期转文本
- EXCEL转文本
- 语音转文本
- 点云数据的读取(las、txt、xyz格式)
- Excel中数字转文本(亲自实践)
- iOS语音书写功能(语音转文本)
- iOS语音书写功能(语音转文本)
- iOS语音书写功能(语音转文本)
- libLAS 读写点云数据(las2txt)
- LAS格式点云读写
- POI--word2003/2007转文本
- las
- IBM watson API解析1-Speech To Text(语音转文本)
- 数字型转文本型,如何保留千位符.
- 数字型转文本型,如何保留千位符
- 扫描版PDF转文本的方法
- ubuntu16.04 安装 openCV3.1 问题
- javascript事件编程
- 数据库原理
- 解决跨域的方法
- java数组存放问题
- las文件格式转文本格式(Las2Txt)
- 下拉菜单
- JAVA开发工程师有前途吗?
- Linux进程间通信
- 如何修改tomcat的端口号
- 互联网服务端技术——如何学(下B)
- 2016年团体程序设计天梯赛-模拟赛 L3-1. 肿瘤诊断 (三维 BFS)
- printf和awk
- vim编辑器基本操作小小总结