• 大小: 564KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: 其他
  • 标签: 点云  算法  

资源简介

该算法比较成熟地解决了点云处理中的一些困难:空洞填补、曲面拟合等等

资源截图

代码片段和文件信息

//本文件是数据交换模块的实现文件
#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个文件信息

评论

共有 条评论