PCL 基于多项式拟合的法线估计、点云平滑和数据重采样

在使用Window VS2010为开发平台,学习PCL点云库的时候,学到曲面重建(Surface)。在测试下面的程序的时候,遇到了问题。

#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/io/io.h>
#include <pcl/io/ply_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/surface/mls.h>
#include <iostream>
#include <pcl/visualization/cloud_viewer.h> #include <pcl/console/print.h>
#include <pcl/console/parse.h>
#include <pcl/console/time.h> using namespace std;
using namespace pcl;
using namespace pcl::io;
using namespace pcl::console;
int
main (int argc, char** argv)
{
cout << "Project Begin: " << endl;
// Load input file into a PointCloud<T> with an appropriate type
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZRGBA> ());
// Load bun0.pcd -- should be available with the PCL archive in test
pcl::io::loadPCDFile ("pcl_point_cloud/phase2d_1.pcd", *cloud); cout << "Read .pcd File Final. " << endl;
cout << "This cloud Points number is :" << cloud->points.size() << endl; // Create a KD-Tree
pcl::search::KdTree<pcl::PointXYZRGBA>::Ptr tree (new pcl::search::KdTree<pcl::PointXYZRGBA>); // Output has the PointNormal type in order to store the normals calculated by MLS
pcl::PointCloud<pcl::PointXYZRGBNormal> mls_points; // Init object (second point type is for the normals, even if unused)
pcl::MovingLeastSquares<pcl::PointXYZRGBA, pcl::PointXYZRGBNormal> mls; mls.setComputeNormals (true); //Set parameters
mls.setInputCloud(cloud);
mls.setPolynomialFit(true);
mls.setSearchMethod(tree);
mls.setSearchRadius(.1); TicToc tt;
tt.tic (); print_highlight ("Processing ");
// Reconstruct
mls.process(mls_points);
print_info ("[done, "); print_value ("%g", tt.toc ()); print_info (" ms]\n"); cout << "Smoothing Processing cloud Points Final." << endl; std::cout << "After MLS , point cloud size is " << mls_points.size() << std::endl; // Save output
pcl::io::savePCDFile ("phase2d-mls.pcd", mls_points); cout << "Save .PCD file Final !" << endl;
cout << "New The New Cloud Points number is : " << mls_points.points.size() << endl; getchar();
return 0;
}

VS2010编译这段程序的时候,出现了下面的链接错误:

1>Smoothing_Cloud.obj : error LNK2019: 无法解析的外部符号 "public: virtual void __thiscall pcl::MovingLeastSquares<struct pcl::PointXYZRGBA,struct pcl::PointXYZRGBNormal>::process(class pcl::PointCloud<struct pcl::PointXYZRGBNormal> &)" (?process@?$MovingLeastSquares@UPointXYZRGBA@pcl@@UPointXYZRGBNormal@2@@pcl@@UAEXAAV?$PointCloud@UPointXYZRGBNormal@pcl@@@2@@Z),该符号在函数 _main 中被引用
1>Smoothing_Cloud.obj : error LNK2001: 无法解析的外部符号 "private: virtual void __thiscall pcl::MovingLeastSquares<struct pcl::PointXYZRGBA,struct pcl::PointXYZRGBNormal>::performProcessing(class pcl::PointCloud<struct pcl::PointXYZRGBNormal> &)" (?performProcessing@?$MovingLeastSquares@UPointXYZRGBA@pcl@@UPointXYZRGBNormal@2@@pcl@@EAEXAAV?$PointCloud@UPointXYZRGBNormal@pcl@@@2@@Z)
1> fatal error LNK1120: 2 个无法解析的外部命令
1>
1>生成失败。

解决办法:

添加下面这个头文件:

#include <pcl/surface/impl/mls.hpp>

再次编译,问题解决。


参考网站:

http://docs.ros.org/hydro/api/pcl/html/mls_8hpp.html

http://d.hatena.ne.jp/takmin/comment?date=20130719

解决PCL MLS : error LNK2019; error LNK2001 virtual MovingLeastSquares process performProcessing问题的更多相关文章

  1. error LNK2019: 无法解析的外部符号 __imp___CrtDbgReportW

    error LNK2005 and error LNK2019 error LNK2019: unresolved external symbol __imp___CrtDbgReportW refe ...

  2. error LNK2019: 无法解析的外部符号(编程解决方法)

    正在编译...1>Ipv4IPv6traceroutesrc.cpp1>d:\研究生\c++\study\test\test\ipv4ipv6traceroutesrc.cpp(461) ...

  3. 错误 1 error LNK2019: 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用 解决方法

    晚上花几分钟在windows下测了下pthread的用法,出现错误 1 error LNK2019: 无法解析的外部符号 __imp__pthread_create,该符号在函数 _main 中被引用 ...

  4. (obj) error: LNK2019: 无法解析的外部符号解决方法

    利用VS2010 C++ 调用 labview生成的动态库编程时无法生成exe 报错信息: Cjj_32.obj : error LNK2019: 无法解析的外部符号 _GetPXIResource@ ...

  5. 链接报error LNK2019: unresolved external symbol错误,解决

    http://blog.163.com/aiding_001/blog/static/22908192011102224344450/ 某次编写一个COM组件,接口定义好之后,增加了ZRX代码后编译链 ...

  6. “error LNK2019: 无法解析的外部符号”之分析

    最近在用VS 2008开发,初学遇到不少问题,最头疼的问题之一就是:LNK2019. 百度一下讲的并不够全面,反正都没解决我的问题. error LNK2019问题在VC 6.0中是error LNK ...

  7. error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用

    MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用 Debug ...

  8. MSVCRTD.lib(mfc.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainC (转)

    一.问题描述 我所使用的编程环境:VS2010 出现的问题如下: MSVCRTD.lib(mfc.obj) : error LNK2019: 无法解析的外部符号_WinMain@16,该符号在函数 _ ...

  9. error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR...

    http://blog.csdn.net/playstudy/article/details/6661868 一,问题描述MSVCRTD.lib(crtexew.obj) : error LNK201 ...

随机推荐

  1. Oracle数据库体系结构(1)整体概述

    oracle数据库的存储结构: 逻辑存储结构:oracle内部的组织和管理数据的方式 物理存储结构:oracle外部(操作系统)组织和管理数据的方式 oracle对逻辑存储结构和物理存储结构的管理是分 ...

  2. nova 为何要做互信

    1.计算节点为什么要做nova 的互信? nova 做resize 或者冷迁移需要两台计算节点做互信. 原因:resize(冷迁移)实际上是运行scp 文件到另一台主机上,如下的命令 Command: ...

  3. 20145229吴姗珊两天小总结 《Java程序设计》第4周学习总结

    20145229吴姗珊两天小总结 <Java程序设计>第4周学习总结 教材学习内容总结 由于自己的基础不好对知识的理解不透彻,所以这两天的学习还是集中在第六章和第七章,对知识点多了一点理解 ...

  4. mac活动监视器闪退

    输入:rm -rf ~/Library/LaunchAgents/com.apple.Yahoo.plist即可!

  5. Java 环境变量设置 -- JAVA_HOME CLASSPATH

    1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0 ...

  6. ffmpeg 获取视频宽高

    int main(int argc, char *argv[]) { const char* file_name = "video.mp4"; int ret; unsigned ...

  7. R语言编程中的常见错误

    R语言编程中的常见错误有一些错误是R的初学者和经验丰富的R程序员都可能常犯的.如果程序出错了,请检查以下几方面. 使用了错误的大小写.help().Help()和HELP()是三个不同的函数(只有第 ...

  8. C#中在内容页获取其模板页中的变量,或者值

    在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543 虽然里面提到的方法没有解决我的难题, ...

  9. 2017各银行贷款利息表及P2P平台贷款利率比较

    银行贷款利息是多少?2017各银行贷款利息表及P2P平台贷款利率比较 发表时间: 2017-02-17 作者: 一.2017央行贷款基准率 各个银行的贷款利率是以中国银行的人民币贷款基准率为标准进行上 ...

  10. Netty5.x中新增和值得注意的点(转载http://www.coderli.com/netty-5-new-and-noteworthy/)

    该文档会列出在Netty新版本中值得注意变化和新特性列表.帮助你的应用更好的适应新的版本.   不像Netty3.x和4.x之间的变化,5.x没有那么大的变化,不过也取得了其简化设计中的一些突破性进展 ...