资源简介
该算法比较成熟地解决了点云处理中的一些困难:空洞填补、曲面拟合等等
代码片段和文件信息
//本文件是数据交换模块的实现文件
#include
//主程序头文件
//#include“re.h“
#include“Asc.h“
#include
//************************************************************************
//************************************************************************
//点云文件读取部分
//
//************************************************************************
//************************************************************************
CAscfile::CAscfile()
{
datanum=0;
box.SetLimits(1e20-1e201e20-1e201e20-1e20);
}
CAscfile::~CAscfile()
{
m_data.RemoveAll();
}
//====================================================================
int CAscfile::OpenASC(char* name)
{
//检测文件名
if(name==““||name==NULL)
return FALSE;
//打开文件
m_hFile=fopen(name“r“);
if(m_hFile==NULL)
return FALSE;
//保存相关数据
memcpy(filenamenamestrlen(name));
return TRUE;
}
//====================================================================
void CAscfile::CloseASC()
{
fclose(m_hFile);
}
//====================================================================
int CAscfile::ReadLine(char* str)
{
int re=0;
char* p;
char tch;
if(str==NULL) return re;
p=str;
tch=fgetc(m_hFile);
while(!feof(m_hFile)&&(tch!=‘\n‘||tch!=0x0a))
{
*p=tch;
p++;
tch=fgetc(m_hFile);
}
*p=‘\0‘;
return TRUE;
}
//=========================================================================
int CAscfile::GetData(char* str CPoint3D& data)
{
int ilen;
char ch=‘*‘;
char* pch=NULL;
float xyz;
//检测数据有效性
if(str==NULL)
return FALSE;
if((pch=strchr(strch))!=NULL)
return FALSE;
//读取数据
ilen=0;
ilen=sscanf(str“%f %f %f“&x&y&z);
if(ilen!=3)
return FALSE;
data.SetParam(xyz);
return ilen;
}
//=========================================================================
int CAscfile::ReadDataFromFile(char* name)
{
char str[255];
CPoint3D temp;
long grow=500;
int flag=1;
//打开文件
if(name==NULL) return FALSE;
if(!OpenASC(name)) return FALSE;
this->Release();
//读取数据
m_data.SetSize(grow);
while(!feof(m_hFile))
{
if(!ReadLine(str))
continue;
//数据转化并保存
if(GetData(strtemp))
{
m_data[datanum]=temp;
box.AddBox(temp);
datanum++;
grow--;
}
if(grow<=1)
{
grow=500;
m_data.SetSize(datanum+grow);
}
}
m_data.FreeExtra();
CloseASC();
return TRUE;
}
//==================================================================
void CAscfile::Release()
{
m_data.RemoveAll();
datanum=0;
}
//完
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2683 2007-10-25 11:31 LIDAR点云有用的算法\asc.cpp
文件 1582 2007-09-29 23:12 LIDAR点云有用的算法\Asc.h
文件 7001 2009-10-21 10:17 LIDAR点云有用的算法\AxisSystem.cpp
文件 2325 2009-06-10 16:47 LIDAR点云有用的算法\AxisSystem.h
文件 573 2007-09-12 08:22 LIDAR点云有用的算法\BasicSurface.cpp
文件 1881 2007-11-06 09:05 LIDAR点云有用的算法\BasicSurface.h
文件 6876 2007-11-04 15:37 LIDAR点云有用的算法\BezierCurve.cpp
文件 2214 2007-11-04 15:37 LIDAR点云有用的算法\BezierCurve.h
文件 2474 2009-10-26 20:38 LIDAR点云有用的算法\BoundingBox.cpp
文件 1650 2007-11-06 09:05 LIDAR点云有用的算法\BoundingBox.h
文件 2789 2007-10-19 09:59 LIDAR点云有用的算法\Bsp.cpp
文件 728 2007-11-06 09:05 LIDAR点云有用的算法\Bsp.h
文件 8093 2007-11-04 20:48 LIDAR点云有用的算法\BSplineCurve.cpp
文件 2283 2007-11-04 15:26 LIDAR点云有用的算法\BSplineCurve.h
文件 5399 2007-11-08 21:55 LIDAR点云有用的算法\Circle3D.cpp
文件 2869 2007-11-08 08:09 LIDAR点云有用的算法\Circle3D.h
文件 2797 2007-09-12 08:25 LIDAR点云有用的算法\Cone.cpp
文件 1913 2007-11-06 09:05 LIDAR点云有用的算法\Cone.h
文件 719 2007-11-04 15:37 LIDAR点云有用的算法\Conic.cpp
文件 2110 2007-11-04 15:37 LIDAR点云有用的算法\Conic.h
文件 17918 2007-10-08 10:51 LIDAR点云有用的算法\CoolDialogBar.cpp
文件 3565 2007-11-06 09:05 LIDAR点云有用的算法\CoolDialogBar.h
文件 1925 2008-01-03 17:25 LIDAR点云有用的算法\CreateLine.cpp
文件 1336 2008-01-03 17:18 LIDAR点云有用的算法\CreateLine.h
文件 745 2007-09-12 08:26 LIDAR点云有用的算法\Curve.cpp
文件 2209 2007-11-04 15:37 LIDAR点云有用的算法\Curve.h
文件 2846 2007-09-12 08:26 LIDAR点云有用的算法\Cylinder.cpp
文件 1992 2007-11-06 09:05 LIDAR点云有用的算法\Cylinder.h
文件 3351 2007-11-06 09:05 LIDAR点云有用的算法\DockTool.h
文件 3823 2010-06-18 21:43 LIDAR点云有用的算法\Ellipse3D.cpp
............此处省略143个文件信息
相关资源
- 二叉树的实现各种遍历算法
- 一种新的改进粒子滤波算法
- 多约束下多车场车辆路径问题的蚁群
- Marching Cube 算法原理介绍
- ADS1292-呼吸、心率之卡尔曼滤波
- 数学建模-贝叶斯估计-算法-统计学
- 资源分配 银行家算法
- PrefixSpan算法设计与实现
- 量子计算与量子优化算法附录程序
- 递归最小二乘算法RLS
- 位图像素转矢量算法库
- 种子填充算法
- 基于遗传算法的阵列天线赋形波束综
- 分治算法实验报告
- 多目标优化遗传算法实现
- jpg图片编码算法代码(bmp转jpg)
- 抽取(重组)h264-svc各层数据的算法
- 基于人工鱼群算法的PID参数优化设计
- 介绍DSP C6000 指令系统并用汇编写出乘
- 对字符串进行哈夫曼编码和解码
- eil51.tsp.txt
- SM4密码算法.pdf
- 基于RSSI的无线传感器网络三角形质心
- 蜂窝最短路径
- 粗糙集约简RDDM算法举例
- KNN算法预测鸢尾花的种类,源码以及
- 一种OFOMA实时子载波分配算法及仿真
- 基于PCL开源库fpfh+icp算法实现点云配准
- 图像加密解密算法
- αβ剪枝算法五子棋
评论
共有 条评论