-
大小: 5.33MB文件類(lèi)型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-09-22
- 語(yǔ)言: 其他
- 標(biāo)簽: 點(diǎn)云??DEM構(gòu)建??激光雷達(dá)??
資源簡(jiǎn)介
基于激光雷達(dá)點(diǎn)云數(shù)據(jù),采用規(guī)則格網(wǎng)的方法構(gòu)建DEM,使用的時(shí)候記得更改數(shù)據(jù)的路徑和名稱(chēng)。歡迎下載和交流。

代碼片段和文件信息
#define?_CRT_SECURE_NO_DEPRECATE;
#include?
#include?“MyPoint.h“
#include?
#include?
#include?“Grid.h“
using?namespace?std;
int?main()
{
vector?p;
//讀取數(shù)據(jù)
FILE*?file1?=?fopen(“E:/195527043張少晴_工程測(cè)量作業(yè)提交/data/G02_17_0?-?Cloud_clip.txt“?“r+“);
if?(file1?==?NULL)
{
printf(“打開(kāi)文件失敗!\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);
//遍歷所有點(diǎn)云,求出x、y的最大坐標(biāo)和最小坐標(biāo),從而確定格網(wǎng)的范圍
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? {
if?(minx?>?p[i].x)
{
minx?=?p[i].x;
}
if?(maxx? {
maxx?=?p[i].x;
}
if?(miny?>?p[i].y)
{
miny?=?p[i].y;
}
if?(maxy? {
maxy?=?p[i].y;
}
}
cout?<“minx:“?< ////////創(chuàng)建格網(wǎng)/////////
Grid?grid;
grid.dx?=?1;
grid.dy?=?1;
grid.CreatGrid(minx?miny?maxx?maxy);
//遍歷所有點(diǎn),將每個(gè)點(diǎn)添加到對(duì)應(yīng)的單元格網(wǎng)容器中
int?row1;
int?rank1;
int?k;
for?(int?i?=?0;?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]);
}
/////為每個(gè)格網(wǎng)附上高程值//////
cout?<“為格網(wǎng)中有點(diǎn)的格網(wǎng)賦高程值“?< for?(int?i?=?0;?i? {
if?(grid.grid_vector[i].point_vector.size()?!=?0)//判斷每個(gè)格網(wǎng)中是否有點(diǎn)
{
grid.grid_vector[i].h1_sum?=?0;
for?(int?j?=?0;?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();?//取格網(wǎng)中所有點(diǎn)的高程的平均值賦給該格網(wǎng)
}
else
{
grid.grid_vector[i].h1?=?0;//如果該格網(wǎng)中沒(méi)有點(diǎn),將該網(wǎng)格的高程值賦值為0
}
}
cout?<“為格網(wǎng)中沒(méi)有點(diǎn)的格網(wǎng)賦高程值“?< for?(int?i?=?0;?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;
//向四周逐漸擴(kuò)展,每次擴(kuò)展一周,直到搜索到高程不為零的格網(wǎng)為止,最后取平均值作為該中心格網(wǎng)的高程值
for?(int?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? {
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;
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????1800??2019-12-23?16:23??基于點(diǎn)云的DEM構(gòu)建\data_clip.txt
?????文件??????78336??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\Debug\DEM.exe
?????文件?????670100??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\Debug\DEM.ilk
?????文件????1133568??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\Debug\DEM.pdb
?????文件??????18822??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\cl.command.1.tlog
?????文件?????215456??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\CL.read.1.tlog
?????文件??????10816??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\CL.write.1.tlog
?????文件????????406??2019-12-23?12:20??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\DEM.exe.em
?????文件????????472??2019-12-28?21:21??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\DEM.exe.em
?????文件????????381??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\DEM.exe.intermediate.manifest
?????文件?????????94??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\DEM.lastbuildstate
?????文件???????3171??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\DEM.log
?????文件?????133870??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\dem.obj
?????文件????????713??2019-12-20?21:46??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\DEM.vcxprojResolveAssemblyReference.cache
?????文件??????????0??2019-12-20?21:46??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\DEM.write.1.tlog
?????文件????????196??2019-12-21?14:49??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\DEM_manifest.rc
?????文件??????51657??2019-12-20?21:46??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\EachGrid.obj
?????文件??????51509??2019-12-20?22:31??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\EarchGrid.obj
?????文件?????177050??2019-12-28?21:21??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\Grid.obj
?????文件???????3076??2019-12-20?22:31??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\Index.obj
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
?????文件??????????2??2019-12-28?21:23??基于點(diǎn)云的DEM構(gòu)建\DEM\Debug\li
............此處省略74個(gè)文件信息
評(píng)論
共有 條評(píng)論