资源简介
基于激光雷达点云数据,采用规则格网的方法构建DEM,使用的时候记得更改数据的路径和名称。欢迎下载和交流。
代码片段和文件信息
#define _CRT_SECURE_NO_DEPRECATE;
#include
#include “MyPoint.h“
#include
#include
#include “Grid.h“
using namespace std;
int main()
{
vector p;
//读取数据
FILE* file1 = fopen(“E:/195527043张少晴_工程测量作业提交/data/G02_17_0 - Cloud_clip.txt“ “r+“);
if (file1 == NULL)
{
printf(“打开文件失败!\n“);
system(“pause“);
return 1;
}
else
{
while (!feof(file1))
{
MyPoint point;
fscanf(file1 “%lf%lf%lf“ &point.x &point.y &point.z);
p.push_back(point);
}
}
fclose(file1);
//遍历所有点云,求出x、y的最大坐标和最小坐标,从而确定格网的范围
double minx = p[0].x;
double maxx = p[0].x;
double miny = p[0].y;
double maxy = p[0].y;
int i;
for (i = 0; i < p.size(); i++)
{
if (minx > p[i].x)
{
minx = p[i].x;
}
if (maxx < p[i].x)
{
maxx = p[i].x;
}
if (miny > p[i].y)
{
miny = p[i].y;
}
if (maxy < p[i].y)
{
maxy = p[i].y;
}
}
cout << “minx:“ << minx << “ maxx:“ << maxx << “ miny:“ << miny << “ maxy:“ << maxy << endl;
////////创建格网/////////
Grid grid;
grid.dx = 1;
grid.dy = 1;
grid.CreatGrid(minx miny maxx maxy);
//遍历所有点,将每个点添加到对应的单元格网容器中
int row1;
int rank1;
int k;
for (int i = 0; i < p.size(); i++)
{
rank1 = int((p[i].x - grid.dem_minx) / grid.dx) + 1;
row1 = int((p[i].y - grid.dem_miny) / grid.dy) + 1;
k = (rank1 - 1) * grid.x_num + row1;
grid.grid_vector[k - 1].point_vector.push_back(p[i]);
}
/////为每个格网附上高程值//////
cout << “为格网中有点的格网赋高程值“ << endl;
for (int i = 0; i < grid.grid_num; i++)
{
if (grid.grid_vector[i].point_vector.size() != 0)//判断每个格网中是否有点
{
grid.grid_vector[i].h1_sum = 0;
for (int j = 0; j < grid.grid_vector[i].point_vector.size(); j++)
{
grid.grid_vector[i].h1_sum += grid.grid_vector[i].point_vector[j].z;
}
grid.grid_vector[i].h1 = grid.grid_vector[i].h1_sum / grid.grid_vector[i].point_vector.size(); //取格网中所有点的高程的平均值赋给该格网
}
else
{
grid.grid_vector[i].h1 = 0;//如果该格网中没有点,将该网格的高程值赋值为0
}
}
cout << “为格网中没有点的格网赋高程值“ << endl;
for (int i = 0; i < grid.grid_vector.size(); i++)
{
if (grid.grid_vector[i].h1 == 0)
{
int j = 1;
while (grid.grid_vector[i].h1 == 0)
{
double sum = 0;
int number = 0;
int q;
//向四周逐渐扩展,每次扩展一周,直到搜索到高程不为零的格网为止,最后取平均值作为该中心格网的高程值
for (int m = grid.grid_vector[i].row - j; m < grid.grid_vector[i].row + j; m++)
{
if (m > grid.x_num || m < 1)
{
continue;
}
else
{
for (int n = grid.grid_vector[i].rank - j; n < grid.grid_vector[i].rank + j; n++)
{
if (n<1 || n>grid.y_num)
{
continue;
}
else
{
q = (m-1) * grid.y_num + n -1;
if (grid.grid_vector[q].h1 != 0)
{
sum = sum + grid.grid_vector[q].h1;
number++;
}
}
}
}
}
if (number != 0)
{
grid.grid_vector[i].h1 = sum / number;
break;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1800 2019-12-23 16:23 基于点云的DEM构建\data_clip.txt
文件 78336 2019-12-28 21:23 基于点云的DEM构建\Debug\DEM.exe
文件 670100 2019-12-28 21:23 基于点云的DEM构建\Debug\DEM.ilk
文件 1133568 2019-12-28 21:23 基于点云的DEM构建\Debug\DEM.pdb
文件 18822 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\cl.command.1.tlog
文件 215456 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\CL.read.1.tlog
文件 10816 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\CL.write.1.tlog
文件 406 2019-12-23 12:20 基于点云的DEM构建\DEM\Debug\DEM.exe.em
文件 472 2019-12-28 21:21 基于点云的DEM构建\DEM\Debug\DEM.exe.em
文件 381 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\DEM.exe.intermediate.manifest
文件 94 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\DEM.lastbuildstate
文件 3171 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\DEM.log
文件 133870 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\dem.obj
文件 713 2019-12-20 21:46 基于点云的DEM构建\DEM\Debug\DEM.vcxprojResolveAssemblyReference.cache
文件 0 2019-12-20 21:46 基于点云的DEM构建\DEM\Debug\DEM.write.1.tlog
文件 196 2019-12-21 14:49 基于点云的DEM构建\DEM\Debug\DEM_manifest.rc
文件 51657 2019-12-20 21:46 基于点云的DEM构建\DEM\Debug\EachGrid.obj
文件 51509 2019-12-20 22:31 基于点云的DEM构建\DEM\Debug\EarchGrid.obj
文件 177050 2019-12-28 21:21 基于点云的DEM构建\DEM\Debug\Grid.obj
文件 3076 2019-12-20 22:31 基于点云的DEM构建\DEM\Debug\Index.obj
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
文件 2 2019-12-28 21:23 基于点云的DEM构建\DEM\Debug\li
............此处省略74个文件信息
相关资源
- 点云拼接、点云求交
- 点云切片;点云平面切割
- STM32F407定高超声波避障激光雷达.rar
- 斯坦福点云数据
- 建筑物点云数据
- GalaxyT1000参数
- 常见的三维点云数据,已经整理数据
- 常见点云数据,xyz格式txt
- 思岚激光雷达数据读取
- VC点云数据显示,OPENGL图像渲染.rar
- PCL+QVTK点云可视化
- 移动最小二乘增量式多视点云数据融
- 激光雷达串口控制台
- ply格式三维点云模型
- Bunny Horse Dragon 三维点云数据
- 激光雷达点云处理软件
- 点云匹配代码
- 三维点云数据的预处理研究
- CATIA点云逆向
- 基于拉普拉斯算子的点云骨架提取
- PointVisulization.rar
- 激光雷达测量气溶胶消光系数
- 点云数据,包括原始数据以及从中提
- 基于TOF深度传感器植物点云获取和去
- 三维激光点云las数据
- 视差图转换物方点云DSM
- bun0.pcd
- AVOD论文解析
- 高清版本SPAD SiPM 激光雷达sensor 技术简
- 激光扫描点云数据
评论
共有 条评论