标签: point-clouds

点云库,两点云的强大注册

我需要找到两个三维点云之间的变换和旋转差异.为此,我正在寻找PCL,因为它看起来很理想.

关于干净的测试数据我有迭代最近点工作,但给出了奇怪的结果(虽然我可能已经错误地实现了...)我有pcl::estimateRigidTransformation工作,看起来更好,虽然我认为会更糟糕的数据噪音.

我的问题是:

这两个云会很吵,虽然它们应该包含相同的点,但会有一些差异.处理这个问题的最佳方法是什么?

我应该在两个云中找到相应的功能开始然后使用estimateTransform吗?或者我应该看一个RANSAC删除异常值的函数?是ICP一个更好的方式去estimateRigidTransform

c++ point-clouds point-cloud-library

16
推荐指数
2
解决办法
1万
查看次数

three.js - 调整单个粒子的不透明度

我试图改变粒子的不透明度作为它们与平面的距离的函数.

这个问题描述了我的问题,一年前的答案基本上是"你不能".不透明度显然是材料的参数,而不是元素,因此单个粒子的不透明度是不可能的.

有什么改变,有什么办法可以实现吗?如果单个粒子着色是可能的,我想这不是遥不可及的.

干杯

point-clouds particle-system three.js

13
推荐指数
1
解决办法
1万
查看次数

从3Dlaser扫描仪中对点云进行网格划分

有没有可以实时进行点云网格划分的软件包/软件?

用于表示3D点云的数据结构是什么?

algorithm triangulation point-clouds data-structures

12
推荐指数
2
解决办法
5179
查看次数

在MayaVi中指定3D点的绝对颜色

我正在使用MayaVi Python库来绘制3d点,使用points3d该类.文档指定通过第四个参数指定每个点的颜色s:

此外,您可以传递与x,y和z相同形状的第四个数组s,为每个点提供关联的标量值,或者返回标量值的函数f(x,y,z).此标量值可用于调整点的颜色和大小.

这指定了每个点的标量值,将点映射到颜色映射,例如copper,jethsv.例如,从他们的文件:

import numpy
from mayavi.mlab import *

def test_points3d():
    t = numpy.linspace(0, 4*numpy.pi, 20)
    cos = numpy.cos
    sin = numpy.sin

    x = sin(2*t)
    y = cos(t)
    z = cos(2*t)
    s = 2+sin(t)

    return points3d(x, y, z, s, colormap="copper", scale_factor=.25)
Run Code Online (Sandbox Code Playgroud)

得到:

在此输入图像描述

相反,我想将每个点的实际值指定为(r,g,b)元组.这可能在MayaVi中吗?我已经尝试用s一个元组数组替换,但是会抛出一个错误.

python color-mapping point-clouds mayavi

12
推荐指数
4
解决办法
4572
查看次数

我可以从网格生成点云吗?

我正在尝试从网格中生成点云数据,例如Maya的(.obj)文件.但是,我只能找到相反的情况,在互联网上点云点.有没有办法使用MeshLab或Maya等3D工具创建"网格点云数据"?(我更喜欢使用MeshLab)

谢谢.:)

3d mesh maya point-clouds meshlab

12
推荐指数
3
解决办法
2万
查看次数

在C++中删除向量中的3D点的重复

我正在处理点云,即点的向量,作为计算的结果,其包含重复点(高达云的大小的10%).

我的实现是根据x,y和z值对这些点进行排序,然后使用该std::unique函数.然而,生成的云仍然包含重复项,即使排序本身似乎有效.

这是至关重要的代码

bool comparePoint(pcl::PointXYZINormal p1, pcl::PointXYZINormal p2){
if (p1.x != p2.x)
    return p1.x > p2.x;
else if (p1.y != p2.y)
    return  p1.y > p2.y;
else
    return p1.z > p2.z;
}

bool equalPoint(pcl::PointXYZINormal p1, pcl::PointXYZINormal p2){
    if (p1.x == p2.x && p1.y == p2.y && p1.z == p2.z)
        return true;
    return false;
}
void KDsearch::cullDuplePoints(){
    std::sort(points.begin(), points.end(), comparePoint);
    std::unique(points.begin(), points.end(), equalPoint);
}
Run Code Online (Sandbox Code Playgroud)

这里是输出pointcloud(x,y和z坐标)的部分提取:

1.96828 -535.09515 2794.8391
1.96627 -636.95264 2914.0366
1.96627 -636.95264 2914.0366
1.9651 108.77433 2350.9841
1.9651 108.77433 2350.9841 …
Run Code Online (Sandbox Code Playgroud)

c++ point-clouds point-cloud-library

12
推荐指数
2
解决办法
3105
查看次数

11
推荐指数
0
解决办法
4052
查看次数

PCL:可视化点云

我正在尝试使用PCL CloudViewer 可视化点云.问题是,我是很新的C++,我发现两个教程第一示范点云的创建和第二示范一个点云的可视化.但是,我无法将这两个教程结合起来.

这就是我的意思:

#include <iostream>

#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <pcl/visualization/cloud_viewer.h>

int main (int argc, char** argv)
{
  pcl::PointCloud<pcl::PointXYZ> cloud;

  // Fill in the cloud data
  cloud.width    = 5;
  cloud.height   = 1;
  cloud.is_dense = false;
  cloud.points.resize (cloud.width * cloud.height);

  for (size_t i = 0; i < cloud.points.size (); ++i)
  {
    cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f);
    cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f);
    cloud.points[i].z = 1024 * …
Run Code Online (Sandbox Code Playgroud)

point-clouds point-cloud-library

11
推荐指数
2
解决办法
2万
查看次数

任何人都可以解释有组织和无组织点云之间的区别吗?

有组织的点云和无组织点云之间有什么区别?

我是否正确地认为点云是[x,y,z]值的一列?如果有组织或无组织的点云的结构有什么不同呢?

它如何影响后续处理步骤,如过滤,正常估计,注册等?

谢谢,赛

point-clouds point-cloud-library

11
推荐指数
1
解决办法
8482
查看次数

点云XYZ格式规范

是否有针对点云的XYZ格式的官方规范?

我一直在寻找,我没有找到它.我已经看到有一些文件包含哪些行:

  • 点坐标,(每个点的XYZ)

  • 其他包含坐标和颜色,(每个点的XYZRGB)

  • 甚至有其他人都有"强度"参数.

我需要考虑所有的可能性.

format 3d point point-clouds

11
推荐指数
1
解决办法
2万
查看次数