Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 调试失败:向量下标超出PCL中的范围;基于多项式重构的平滑和正态估计;辅导的_C++_Visual Studio 2012_Point Cloud Library - Fatal编程技术网

C++ 调试失败:向量下标超出PCL中的范围;基于多项式重构的平滑和正态估计;辅导的

C++ 调试失败:向量下标超出PCL中的范围;基于多项式重构的平滑和正态估计;辅导的,c++,visual-studio-2012,point-cloud-library,C++,Visual Studio 2012,Point Cloud Library,我是pcl新手,我正在尝试将“基于多项式重建的平滑和法线估计”教程中的代码可视化,当我在VS2012中调试它时,我得到了这个消息(我使用的是pcl 1.7): 调试断言失败 程序:C:\Windows\system32\MSVCP110D.dll文件:C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\vector行:1140 表达式:向量下标超出范围 有关程序如何导致断言失败的信息, 有关Asvest.Vis/C++文档

我是pcl新手,我正在尝试将“基于多项式重建的平滑和法线估计”教程中的代码可视化,当我在VS2012中调试它时,我得到了这个消息(我使用的是pcl 1.7):

调试断言失败

程序:C:\Windows\system32\MSVCP110D.dll文件:C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\vector行:1140

表达式:向量下标超出范围

有关程序如何导致断言失败的信息, 有关Asvest.Vis/C++文档的查看。 按“重试”后,我会得到另一个:

调试断言失败

节目:…土豆网 2012\Projects\Tutorials\x64\Debug\pcl\u surface\u Debug.dll文件: C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\VC\include\vector 电话:1141

表达式:“标准C++库超出范围”& & 0<P> 有关程序如何导致断言失败的信息, 有关Asvest.Vis/C++文档的查看。 (按“重试”调试应用程序)程序“[964]MLS.exe”已启动 已退出,代码为3(0x3)

然后我一行一行地调试它,它停在

mls.过程(mls_点)

它还会打开“stdthrow.cpp”:

ifdef_调试 _CRTIMP2_PURE void__CLRCALL_PURE_或_CDECL_Debug_消息(常量wchar_t*消息、常量wchar_t*文件、无符号整数行) {//报告错误和死亡 如果(::_CrtDbgReportW(_CRT_断言,文件,行,NULL,L“%s”,消息)==1) { ::CrtDbgBreak(); } } _CRTIMP2_PURE void_CLRCALL_PURE_或_CDECL_Debug_消息(常量无符号短*消息、常量无符号短*文件、无符号整数 (行) {//报告错误和死亡 _调试消息((wchar\u t*)消息,(wchar\u t*)文件,行); }

恩迪夫 停在

::CrtDbgBreak()

有人能解释一下这个问题吗?以下是pcl教程页面中的代码:

#包括
#包括
#包括
#包括
int
主(内部argc,字符**argv)
{
//将输入文件加载到具有适当类型的点云中
pcl::PointCloud::Ptr cloud(新的pcl::PointCloud());
//Load bun0.pcd--应与测试中的PCL存档一起提供
pcl::io::loadPCDFile(“bun0.pcd”,*云);
//创建KD树
pcl::search::KdTree::Ptr树(新的pcl::search::KdTree);
//输出具有PointNormal类型,以便存储MLS计算的法线
pcl::点云mls_点;
//Init对象(第二个点类型用于法线,即使未使用)
pcl::移动租赁方mls;
mls.setComputeNormals(真);
//设置参数
mls.setInputCloud(云);
mls.setPolynomialFit(真);
mls.setSearchMethod(树);
mls.setSearchRadius(0.03);
//重建
mls过程(mls_点);
//保存输出
pcl::io::savePCDFile(“bun0 mls.pcd”,mls_points);

}
您的KdTree没有输入,这将解决您的问题:
添加
tree->setInputCloud(云)
After
pcl::search::KdTree::Ptr树(新的pcl::search::KdTree)

能否请您添加有关您提供的解决方案的更多详细信息?您最好查看官方教程: