阅读量:0
问题描述:点云过滤部分的参数写成一个QT界面进行调整参数,那么就需要保持界面参数和函数里面参数的一致性,由于参数众多,我使用结构体进行构造,但是在使用extern方法时候出现问题,无法保持一致性。
解决代码:有两个文件-头文件filiter.h-cpp文件filiter.cpp
step1:filiter.h:注意这里只是声明。
typedef struct{ //范围过滤 double XMin; double XMax; double YMin; double YMax; double ZMin; double ZMax; //体素降采样 float voxel_X; float voxel_Y; float voxel_Z; //随机降采样 int random_Sample; int random_Seed; //半径去噪 double radius; int radius_points; //统计去噪 int radius_MeanK; double radius_StddevMulThres; }filiter_para;
定义外部变量
extern filiter_para para;
filiter.cpp
定义全局变量
filiter_para para;
赋初始值
filiter::filiter() { //范围过滤 para.XMin=0.0; para.XMax=1.0; para.YMin=0.0; para.YMax=1.0; para.ZMin=0.0; para.ZMax=1.0; //体素降采样 para.voxel_X=0.01; para.voxel_Y=0.01; para.voxel_Z=0.01; //随机降采样 para.random_Sample=20000; para.random_Seed=1; //半径去噪 para.radius=0.5; para.radius_points=3; //统计去噪 para.radius_MeanK=50; para.radius_StddevMulThres=1.0; }
需要使用para的文件加上头文件
#include "filiter.h"