CMake使用Eigen

  • Eigen是一个开源的C++矩阵运算库,日常使用效果还是不错,更好的有Intel的MKL,但是收费的。
  • Eigen好在不用怎么配置,都是现成的.h/.cpp文件,直接把文件包含进工程目录里面即可。

配合CMake可以实现各个平台的使用: 有一个Demo

根目录是main.cpp、CMakeLists.txt文件和3rd目录,Eigen头文件包含在3rd目录下。 其中CMakeLists.txt文件内容如下

if(COMMAND cmake_minimum_required)
   cmake_minimum_required(VERSION 3.4)
endif(COMMAND cmake_minimum_required)
AUX_SOURCE_DIRECTORY(./ SOURCES)
INCLUDE_DIRECTORIES(./3rd)
add_executable(EigenTest ${SOURCES})
然后用cmake生成平台相应编译器的工程即可。

As-Rigid-As-Possible Shape Interpolation(ASAP)



0 尽量刚体的平面形状插值

代码也实现了,把理解的过程写下来。

  • 第一是试试写md和MJ;
  • 第二是记录一下看文章的思路,公式怎么推导的,怎么转换成代码的。

Continue reading “As-Rigid-As-Possible Shape Interpolation(ASAP)”

PCL配置

  1. PCL配置参考博文,简直是复杂,不过配置过程是正确的。虽然现在有AllInOne安装器了,但是因为eigen和boost还被CGAL所需要,所以我没有选用安装器。
  2. 在测试一个欧拉聚类的时候出现如下错误(确认代码无误)
    error LNK2001: 无法解析的外部符号 "protected: virtual void <strong>thiscall pcl::NormalEstimation::computeFeature(class pcl::PointCloud &)"
    error LNK2019: 无法解析的外部符号 "public: void <>thiscall pcl::ConditionalEuclideanClustering::segment(class std::vector > &)"
    
  3. 解决方法:在类所在的cpp增加#define PCL_NO_PRECOMPILE预编译

  4. 最近在看PCL官方文档的时候看见了这个要求

    Starting with PCL-1.7 you need to define PCL_NO_PRECOMPILE before you include any PCL headers to include the templated algorithms as well.

CGAL配置

从一开始的迷茫到CGAL的安装配置成功,中间也走了很多弯路,现在记录下最简洁的安装方式:

采用CGAL主页Download提供的方式安装CGAL-Download

  • 如果是macOS直接brew install cgal就好了
  • 如果是Windows
    1. 载合适自己Visual Studio版本的BOOST安装包,直接安装。如果对BOOST 有特殊需求的可以用编译的方式安装,不过这货编译起来确实是太慢啦!
    2. 安装好后配置环境变量BOOST_LIBRARY和BOOST_INCLUDE并在path中添加BOOST的dll文件所在路径
    3. 下载CGAL的安装包安装,注意最后会提示在系统path中增加路径,如果不成功的话自己手动添加
    4. 可选安装Qt和libQGLViewer
    5. 安装CMAKE
    6. 使用CMAKE在CGAL根目录创建工程build,然后打开sln文件并编译生成解决方案
    7. 系统path中增加CGAL的路径build\bin