资源简介
用FPFH方法进行点云配准,包含一个两个源文件和一个头文件,头文件包括RANSAC和FPFH特征的定义,源文件其中一个是FPFH特征的提取,还有一个是主函数,主要是各种接口。通过该方法可以比较好的进行点云配准
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include “Ransac.h“
using namespace std;
typedef pcl::PointCloud pointcloud;
typedef pcl::PointCloud pointnormal;
typedef pcl::PointCloud PointCloudFeature;
typedef pcl::FPFHSignature33 FeatureT;
struct Parameter
{
char source_name[256];
char target_name[256];
char groundtruth_file[256];
int num_control;
int testNum;
double RadiusSearch;
double ratio;
double threshold_groundtruth;
double Hurris_threshold;
double Hurris_Radius;
int hurris_flag;
};
struct Result
{
int num_test;
vector precision;
vector recall;
vector F1;
double time_extra;
double time_correspondence;
vector correspondences;
};
Parameter parse_parameter()
{
Parameter out;
ifstream parafile;
parafile.open(“data/parameters.txt“);
if (parafile.fail())
{
cout << “can‘t open the parameters.txt file“ << endl;
exit(0);
}
char str[256];
while (!parafile.eof())
{
parafile.getline(str 256 ‘#‘);
if (strcmp(str “SourceName“) == 0)
{
parafile.getline(str 100 ‘\n‘);
strcpy(out.source_name str);
}
else if (strcmp(str “TargetName“) == 0)
{
parafile.getline(str 255 ‘\n‘);
strcpy(out.target_name str);
}
else if (strcmp(str “GroundTruthName“) == 0)
{
parafile.getline(str 255 ‘\n‘);
strcpy(out.groundtruth_file str);
}
else if (strcmp(str “Ratio“) == 0)
{
parafile.getline(str 255 ‘\n‘);
out.ratio = atof(str);
}
else if (strcmp(str “ThresholdGroundTruth“) == 0)
{
parafile.getline(str 255 ‘\n‘);
out.threshold_groundtruth = atof(str);
}
else if (strcmp(str “RadiusSearch“) == 0)
{
parafile.getline(str 255 ‘\n‘);
out.RadiusSearch = atof(str);
}
else if (strcmp(str “TestNum“) == 0)
{
parafile.getline(str 255 ‘\n‘);
out.testNum = atoi(str);
}
else if (strcmp(str “NumControl“) == 0)
{
parafile.getline(str 255 ‘\n‘);
out.num_control = atoi(str);
}
else if (strcmp(str “Hurris_threshold“) == 0)
{
parafile.getline(str 255 ‘\n‘);
out.Hurris_threshold = atof(str);
}
else if (strcmp(str “Hurris_Radius“) == 0)
{
parafile.getline(str 255 ‘\n‘);
out.Hurris_Radius = atof(str);
}
else if (strcmp(str “Hurris_flag“) == 0)
{
p
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 19274 2017-07-25 15:16 srcFPFH\FPFHregistration.cpp
文件 256 2017-07-25 15:16 srcFPFH\parameters.txt
文件 2905 2017-07-25 15:16 srcFPFH\Ransac.cpp
文件 914 2017-07-25 15:16 srcFPFH\Ransac.h
目录 0 2017-09-08 15:27 srcFPFH
----------- --------- ---------- ----- ----
23349 5
- 上一篇:ScanDemo.zip
- 下一篇:计网rdt实验sim模拟器
评论
共有 条评论