3d到2d图像转换 - PointCloud到OpenCV图像 - C ++

时间:2014-02-05 07:42:00

标签: c++ opencv 3d 2d point-cloud-library

我正在从我的Kinect收集一个手部3d图像,我想仅使用X和Y值生成一个2D图像,以使用OpenCV进行图像处理。 3d矩阵的大小是可变的,并且取决于Kinect的输出,并且X和Y值不是适当的比例以生成2D图像。我的3d点和我的3D图像是:http://postimg.org/image/g0hm3y06n/

enter image description here

我真的不知道如何生成我的2D图像来执行我的图像处理。

有人可以帮助我,或者有一个很好的例子,我可以使用它来创建我的图像并对该问题进行适当的缩放吗?我想要输出HAND CONTOURS。

3 个答案:

答案 0 :(得分:0)

我认为你应该将Delaunay三角剖分应用于点云的2D坐标(忽略深度),然后从三角形中移除太长的顶点。您可以通过计算每个区域的点数来估算长度阈值,并从您将获得的值中评估平方根。在进行三角测量后,您可以绘制实心三角形并找到轮廓。

答案 1 :(得分:0)

我认为您要找的是OKPCL package ..另外,请务必查看有关该主题的this PCL post ..还有一个OpenCVPCL Bridge课程,但显然是网站已经失败了。

最后,已经official word,OpenCV和PCL正在联手开发平台,将GPU计算与2D / 3D感知和处理集成在一起。

HTH

答案 2 :(得分:0)

您可以分别使用RangeImage RangeImagePlanar createFromPointCloud类及其{{3}}方法(我认为您确实有点云,对吗?或者3D图像是什么意思?)。

然后,您可以使用getImagePoint函数创建OpenCV Mat。