C++ 在CImg中加载点云

C++ 在CImg中加载点云,c++,point-cloud-library,cimg,C++,Point Cloud Library,Cimg,我正在尝试从点云创建一个3D CImg对象,以使用CImg的编辑功能 我有一个以ascii格式保存的点云 pcl::io::savePCDFileASCII("/path/data.txt", *cloud); 然后初始化一个3d CImg对象并尝试加载asci文件 CImg<float> image(cloud->width, cloud->height, 5); image.load_ascii("/path/data.txt"); 我对C++和CImg是新手,所

我正在尝试从点云创建一个3D CImg对象,以使用CImg的编辑功能

我有一个以ascii格式保存的点云

pcl::io::savePCDFileASCII("/path/data.txt", *cloud);
然后初始化一个3d CImg对象并尝试加载asci文件

CImg<float> image(cloud->width, cloud->height, 5);
image.load_ascii("/path/data.txt");
<>我对C++和CImg是新手,所以我不确定把点云加载到CIMG中的方法是正确的还是最佳的。我在互联网上也找不到任何有用的东西,CImg github造成的混乱比它的帮助还多


我使用Ubuntu 20,C++ 11,加载任何类型的2D图像。很好。

你的PCL文件不符合什么代码> CIMG< /Cube >。它正在查找以以下内容开头的文件:

WIDTH HEIGHT DEPTH NUMCHANNELS
float1
float2
float3
...
所以,我举了一个例子:

#include "CImg.h"
#include <iostream>

using namespace cimg_library;
using namespace std;

int main()
{
    // Load image 
    CImg<float> image;
    image.load_ascii("image.asc");
    cout << image.width() << endl;
    cout << image.height() << endl;

}

您的PCL文件与
CImg
期望的内容不匹配。它正在查找以以下内容开头的文件:

WIDTH HEIGHT DEPTH NUMCHANNELS
float1
float2
float3
...
所以,我举了一个例子:

#include "CImg.h"
#include <iostream>

using namespace cimg_library;
using namespace std;

int main()
{
    // Load image 
    CImg<float> image;
    image.load_ascii("image.asc");
    cout << image.width() << endl;
    cout << image.height() << endl;

}

快速查看源代码表明文件应以宽度-高度-深度NUMCHANNELS开头,后跟数据。快速查看源代码表明文件应以宽度-高度-深度NUMCHANNELS开头,后跟数据。
4 8 3 1
float1
float2
float3
...
float96