问题标签 [point-clouds]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
3d - 二维点云的轮廓
我在二维中散布了点云。我的问题是我想获得边界点来获得点云的轮廓。
我知道这个“行进广场”,但是这个算法通常用于 2d 中的像素。任何人都知道如何从二维点云或“行进广场”算法的细节中获取轮廓?此外,凸包在我的情况下不起作用。
提前致谢。
android - Android OpenGL 点云
我一直在尝试使用
用顶点缓冲区在我的屏幕上绘制 4 个点,但我无法让它工作。我只想画点,因为最终我想做一个点云显示。如果我有大量的点(最终),顶点缓冲区是要走的路吗?它们不会改变,但我会想改变观察它们的视角和比例。
顶点缓冲区设置:
这是我当前对我的点的绘制调用(我不想要索引,因为形状绘制顺序对我来说并不重要):
当我调用 draw(); 时程序当前崩溃;
谢谢!
rotation - 基于法线向量的点云旋转
我希望根据地板的方向旋转 3-D 点云。我已经检测到地板并计算了它的法线向量。我想使用这个法线向量来确保地板上的所有点都具有相同的 y 值。
由于两个归一化向量的点积是它们之间夹角的余弦值,因此我首先对当前法向量(0.856、0.958、2.58)以及所需的法向量(0.0、0.958、0.0)进行归一化。点积 = 0.917,因此角度 = 70.586,但是在 3 维中这似乎没有用。我需要进行两次旋转吗?如果是这样,对最佳方法有什么建议吗?
c++ - 点云到点云库中的网格
PCL 中是否有将点云转换为网格的函数/类?
visual-studio-2010 - 在 Visual Studio 2010 中使用 PCL
我在使用图书馆方面还很陌生,但我遇到了一些问题。
我已经在我的计算机(Windows 7、32 位)上安装了 PCL 和所有依赖项,我可以构建和使用像“简单云可视化”示例这样的简单示例。但如果我想使用更完整的示例,Visual Studio 2010 会报告链接错误。
如果我理解正确,我没有在“链接器/输入”中“包含”所有必要的“附加依赖项”。我尝试包含 lib 目录中的所有 .lib 文件,但错误报告仍然相同。
有谁知道,应该将哪个 .lib 添加为“附加依赖项”以使示例工作更完整?还是其他地方有问题?
错误报告:
1>main.obj:错误 LNK2019:未解析的外部符号“public:class vtkProperty * __thiscall vtkActor::GetProperty(void)”(?GetProperty@vtkActor@@QAEPAVvtkProperty@@XZ) 在函数“public: bool __thiscall pcl::可视化::PCLVisualizer::addSphere(struct pcl::PointXYZ const &,double,class std::basic_string,class std::allocator > const &,int)" (??$addSphere@UPointXYZ@pcl@@@PCLVisualizer@可视化@pcl@@QAE_NABUPointXYZ@2@NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) 1>main.obj:错误 LNK2019:函数中引用的未解析外部符号“void __cdecl pcl::console::print(enum pcl::console::VERBOSITY_LEVEL,char const *,...)”(?print@console@pcl@@YAXW4VERBOSITY_LEVEL@12@PBDZZ) “公共:bool __thiscall pcl::visualization::PCLVisualizer::addSphere(struct pcl::PointXYZ const &,double,class std::basic_string,class std::allocator > const &,int)" (??$addSphere@UPointXYZ@pcl@@@PCLVisualizer@visualization@pcl@@QAE_NABUPointXYZ @2@NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) 1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall vtkSmartPointerBase::~vtkSmartPointerBase(void)" (??1vtkSmartPointerBase@@QAE@XZ) 在函数 "public: __thiscall vtkSmartPointer::~vtkSmartPointer(void)" (??1?$vtkSmartPointer@VvtkLODActor@@@@QAE @XZ) 1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall vtkSmartPointerBase::vtkSmartPointerBase(void)" (??0vtkSmartPointerBase@@QAE@XZ) 在函数“public: __thiscall vtkSmartPointer::vtkSmartPointer(void)”中引用)"(??0?$vtkSmartPointer@VvtkLODActor@@@@QAE@XZ) 1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall vtkSmartPointerBase::vtkSmartPointerBase(class vtkSmartPointerBase const &)" (??0vtkSmartPointerBase@@ QAE@ABV0@@Z) 在函数 "public: __thiscall vtkSmartPointer::vtkSmartPointer(class vtkSmartPointer const &)" (??0?$vtkSmartPointer@VvtkProp@@@@QAE@ABV0@@Z) 1>main.obj 中引用: 错误 LNK2019: 未解析的外部符号“public: __thiscall vtkSmartPointerBase::vtkSmartPointerBase(class vtkObjectBase *)” (??0vtkSmartPointerBase@@QAE@PAVvtkObjectBase@@@Z) 在函数“public: __thiscall vtkSmartPointer::vtkSmartPointer(class vtkSmartPointer const &)" (??$?0VvtkLODActor@@@?$vtkSmartPointer@VvtkProp@@@@QAE@ABV?$vtkSmartPointer@VvtkLODActor@@@@@Z) 1>main.obj:错误 LNK2019:未解析的外部符号“public:class vtkSmartPointerBase & __thiscall vtkSmartPointerBase::operator=(class vtkObjectBase *)”(??4vtkSmartPointerBase@@QAEAAV0@PAVvtkObjectBase@@@Z) 在函数“public:class vtkSmartPointer”中引用& __thiscall vtkSmartPointer::operator=(class vtkSmartPointer const &)" (??$?4VvtkLODActor@@@?$vtkSmartPointer@VvtkProp@@@@QAEAAV0@ABV?$vtkSmartPointer@VvtkLODActor@@@@@Z)(??$?4VvtkLODActor@@@?$vtkSmartPointer@VvtkProp@@@@QAEAAV0@ABV?$vtkSmartPointer@VvtkLODActor@@@@@Z)(??$?4VvtkLODActor@@@?$vtkSmartPointer@VvtkProp@@@@QAEAAV0@ABV?$vtkSmartPointer@VvtkLODActor@@@@@Z)
point-clouds - 如何合并具有不同视点的两个点云
我的 3D 扫描仪从不同角度扫描一些物体,最终获得 360° 表面重建。每次扫描的点云有不同数量的点,需要合并。在我想用于重建的 PCL 库中,有一些算法可以使用一些迭代最近点方法来合并具有相同点数的点云。
我想避免找出旋转轴。当然,知道它的位置和旋转角度,我可以将一朵云的所有点乘以旋转矩阵,然后合并云。有没有办法在不知道旋转中心的情况下合并它们?(甚至可能从算法中得到它的位置?)
c++ - 在点云库中从专有格式转换为浮点数;找不到匹配的函数
关于点云库中从专有数据类型到浮点数的转换,我认为这是一个相当基本的问题。我认为我的问题来自于缺乏对模板、数据类型和 C++ 的一般经验。
应该执行此转换的函数是copyToFloatArray,在文档中定义为:
virtual void pcl::DefaultPointRepresentation< FPFHSignature33 >::copyToFloatArray ( const FPFHSignature33 & p, float * out
) const [内联,虚拟]将点数据从输入点复制到浮点数组。
必须在所有子类中重写此方法。
参数:
p 输入点
out 指向浮点数组的指针。
实现 pcl::PointRepresentation< FPFHSignature33 >。
我试图按如下方式实现它:
编译时抛出的错误如下:
看来问题在于传递给函数的第一个参数,但我似乎无法创建const FPFHSignature33 & p
对象。
有谁知道这些怀疑是否正确,如果是,我可能会采取什么方向来开始解决问题?
谢谢你的帮助。
opengl - 将 3D 场景渲染到点云
有没有办法从渲染的 3D 场景中提取点云(使用 OPENGL)?
详细地:
输入应该是渲染的 3D 场景。
输出应该是例如具有顶点(x,y,z) 的三维数组。
任务可能还是不可能?
c++ - LNK2005,MSVC2010 中的“已定义错误”链接器错误
我正在尝试使用带有多个文件的点云库和 OpenCV 来实现一个测试项目。当我尝试编译时,我收到“已定义错误”消息。可能我正在做一些由于某种原因无法实现的愚蠢行为 - 我尝试了一些在这里找到的解决方案,但它们似乎都对我没有帮助。
我有的:
一个 libs.h 文件,我在其中加载 lib 文件(在项目属性中,我只设置 .lib 路径并“手动”加载 lib,如标题):
一个主文件,此时我基本上删除了所有内容以进行调试:
然后我在 main.obj 中收到几条错误消息,表明 files.obj 中已经定义了一些(PCL 相关的)符号。我在 opencvOperations 和 files 中都使用 PCL 相关调用,第一个可以,第二个不起作用。
编辑: 要添加更多详细信息,我的 files.h 标头:
在将代码拆分为单独的文件之前,一切正常(使用相同的项目设置)。
编辑2:
我找到了问题的根源,
导致这个。现在,我摆脱了与 PLY 相关的所有内容,一切正常。我稍后再看,这可能是 PCL 库特定的问题。我仍然很奇怪为什么这个调用会导致另一个文件中的链接器错误,我什至不使用 PLY 相关的函数/变量。
c++ - 如何从点云与任意平面的交点获得曲线?
我有各种点云从 DICOM 文件定义称为 ROI 的 RT-STRUCT。DICOM 文件由断层扫描仪形成。每个 ROI 都是由点云形成的,它代表一些 3D 对象。
目标是得到由平面形成的2D曲线,切割ROI的浊点。问题是我不能只使用与平面相交的点。我可能需要的是使 3D 凹面船体与某个平面相交并得到相交轮廓。
是否有任何库已经实现了这些操作?我找到了 PCL 库,可能它应该能够解决我的问题,但我不知道如何使用 PCL 来实现它。此外,我也可以使用 Matlab - 我们通过 C++ 的运行时使用它。
有没有人偶然发现这个问题?
PS 正如我上面提到的,我需要使用我的 C++ 代码中的解决方案 - 所以它应该是我将通过 Matlab 运行时使用的一些库或 matlab 解决方案。
这种计算中的 PPS 准确性非常重要 - 它将用于用于治疗脑肿瘤的医疗软件中,因此您可以想象错误的后果(: