提问人:Liam Salass 提问时间:6/13/2023 最后编辑:Liam Salass 更新时间:6/13/2023 访问量:298
Open3d C++ 从点云创建文件由于未知文件扩展名而失败
Open3d C++ Create File from point cloud failing due to unknown file extension
问:
我正在尝试使用 C++ 中的 open3d 库读取点云 .ply 文件。使用 或open3d::io::CreatePointCloudFromFile
open3d::io::ReadPointCloud(pcv_load_path, *pcv, open3d::io::ReadPointCloudOption(".ply", false, false, true))
我正在使用最新版本的库 cxx 20 和 cmake 来链接库。 谢谢。
我尝试在 python 中运行相同的代码并使用相同的路径,效果很好,所以我知道文件没有损坏并且文件格式正确。这是我使用的 python 代码:
pc_load = o3d.io.read_point_cloud(pcv_load_path)
o3d.visualization.draw_geometries([pc_load])
我还尝试使用 open3d 提供的不同 IO 函数以不同的方式读取文件。下面是 C++ 代码:
if (! open3d::io::ReadPointCloud (pcv_load_path, *pcv, open3d::io::ReadPointCloudOption ("auto", false, false, true))) {
if (!open3d::io::ReadPointCloud(pcv_load_path, *pcv, open3d::io::ReadPointCloudOption(".ply", false, false, true))) {
cout << "Error: cannot load point cloud" << endl;
return;
}
}
pcv = open3d::io::CreatePointCloudFromFile(pcv_load_path, ".ply", false);
*请注意,两者的pcv_load_path完全相同。这是一个显式路径,我正在使用正斜杠。
此外,在pcv_load_path。我在路径字符串的末尾包含“.ply”格式。
编辑: 输出如下:
[Open3D WARNING] Read geometry::PointCloud failed: unknown file extension for (format: ).
编辑: 我尝试使用以下代码输出文件扩展名:
open3d::utility::filesystem::GetFileExtensionInLowerCase(pcv_load_path) << endl;
这会导致内存访问冲突并导致代码崩溃。
答: 暂无答案
评论
".ply"
format
format
GetFileExtensionInLowerCase
GetFileExtensionInLowerCase
pcv_load_path