PCL 1.8.1 在使用 Eigen 3.3.90 时给出了与 Eigen 类型转换相关的编译错误 类

PCL 1.8.1 gives compilation errors related with typecast of Eigen classes when using Eigen 3.3.90

对于我正在进行的项目,我需要使用点云库,我正在重复使用的一些代码的作者建议使用 PCL 1.8.1 和最新的 b 运行Eigen3 通道。我下载了所有依赖项并成功构建了它们。我通过确保在我的 usr/local/include 目录中看到它们以及每个库(VTK、Boost、Eigen)的 运行 简单示例来检查它们是否有效。一切都很好,直到那里。

然后我从 GitHub 下载了 PCL 源代码并且我能够配置它。但是当我尝试编译它时,我看到了这个错误: Downloads/pcl-pcl-1.8.1/surface/include/pcl/surface/impl/bilateral_upsampling.hpp:112:88: 错误:无法转换 'Eigen::internal::enable_if, float, float> >::type {aka Eigen::IndexedView, float, float>}' 初始化时'float' float val_exp_depth = val_exp_depth_matrix(dx+window_size_, dy+window_size_);

我正在使用以下内容:

我对其中的大部分都是新手,所以如果我无法很好地解释或没有分享足够的信息来帮助我,我提前道歉。请让我知道,我会尽我所能。任何帮助深表感谢。谢谢!

问题是矩阵 val_exp_depth_matrix 是使用浮点值(dxdy)索引的。它们必须转换为整数类型,例如 intlong.

此问题已在 PCL 存储库中修复。