vickyTwan 2023-04-03 09:57 采纳率: 60%
浏览 66
已结题

编写点云代码报错 nodeclaration matches


error: no declaration matches ‘void PlaneGroundFilter::devide_plane(const pcl::PointCloud<velodyne_pointcloud::PointXYZIR>&, double&, pcl::PointCloud<velodyne_pointcloud::PointXYZIR>::Ptr, pcl::PointCloud<velodyne_pointcloud::PointXYZIR>::Ptr)’
  208 |  void PlaneGroundFilter::devide_plane(const pcl::PointCloud<VPoint> &p_sorted,double& x_boundary,
      |       ^~~~~~~~~~~~~~~~~

此段代码如下

void PlaneGroundFilter::devide_plane(const pcl::PointCloud<VPoint> &p_sorted,double& x_boundary,
                    pcl::PointCloud<VPoint>::Ptr plane,
                    pcl::PointCloud<VPoint>::Ptr slope_plane)
    {
            for (int i = 0; i < p_sorted.points.size(); i++){
                int x = p_sorted_points[i].x;
                int y = p_sorted_points[i].y;
                int z = p_sorted_points[i].z;
                if (x < x_boundary){
                    pcl::PointXYZ point1;
                    point1.x = x;
                    point1.y = y;
                    point1.z = z;
                    plane.push_back(point1);
                }
                else{
                    pcl::PointXYZ point2;
                    point2.x = x;
                    point2.y = y;
                    point2.z = z;
                    slope_plane.push_back(point2);
                }
            }
 }

  • 写回答

1条回答 默认 最新

  • Leodong. 2023-04-03 10:22
    关注

    该回答通过自己思路及引用到各个渠道搜索综合及思考,得到内容具体如下:

    错误信息提示没有与函数调用中提供的参数匹配的函数`devide_plane`的声明或定义。
    查看提供的函数定义,可能会有几个问题导致这个错误:
    
    1. 函数名拼写错误。应该是`divide_plane`而不是`devide_plane`。
    2. 在函数定义中,输入点云的参数类型为`pcl::PointCloud<VPoint>`,但错误信息显示函数调用使用的是`pcl::PointCloud<velodyne_pointcloud::PointXYZIR>`。请确保类型匹配。
    3. 在函数定义中,输出点云的参数类型为`pcl::PointCloud<VPoint>::Ptr`,但错误信息显示函数调用使用的是`pcl::PointCloud<velodyne_pointcloud::PointXYZIR>::Ptr`。再次确保类型匹配。
    
    要解决这个错误,您应该检查函数调用以确保参数类型与函数定义匹配。如果类型正确,则可能需要检查函数的声明或定义以确保与使用的参数匹配。
    

    修改后的代码如下:

    void PlaneGroundFilter::divide_plane(const pcl::PointCloud<velodyne_pointcloud::PointXYZIR>& p_sorted, double& x_boundary,
        pcl::PointCloud<velodyne_pointcloud::PointXYZIR>::Ptr plane,
        pcl::PointCloud<velodyne_pointcloud::PointXYZIR>::Ptr slope_plane)
    {
        for (int i = 0; i < p_sorted.points.size(); i++) {
            int x = p_sorted.points[i].x;
            int y = p_sorted.points[i].y;
            int z = p_sorted.points[i].z;
            if (x < x_boundary) {
                velodyne_pointcloud::PointXYZIR point1;
                point1.x = x;
                point1.y = y;
                point1.z = z;
                plane->push_back(point1);
            }
            else {
                velodyne_pointcloud::PointXYZIR point2;
                point2.x = x;
                point2.y = y;
                point2.z = z;
                slope_plane->push_back(point2);
            }
        }
    }
    

    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月3日
  • 创建了问题 4月3日

悬赏问题

  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
  • ¥15 Java+vue部署版本反编译
  • ¥100 对反编译和ai熟悉的开发者。
  • ¥15 带序列特征的多输出预测模型
  • ¥15 Python 如何安装 distutils模块