5

假设我有一个指向地板的 kinect。

如果我在地板上放置 3 或 4 个物体,我如何确定这些物体所在的平面?

如何检测该地板上颜色鲜艳的物体?

4

1 回答 1

8

Kinect 会返回一个矩阵深度图,表示任何表面到传感器的距离,并且根据针孔相机模型,可以将每个深度测量值与对应的 RGB 值对齐。我会认为您已经知道如何将深度矩阵的每个像素与它在空间上的 X、Y、Z 和它的 RGB 值相关联。如果没有,您将需要做进一步的研究并了解深度传感器和 RGB 相机之间的立体相关性是如何完成的。

你在这里问了两个完全不同的问题。第一个很容易用一些基本的几何概念解决,但必须先解决第二个才能找到物体在空间上的位置。

有几种方法可以找到颜色鲜艳的物体。如果您的传感器将记录静态场景,则可以使用Background Subsctraction。这将为您生成一个二进制图像,表示与先前训练的背景模型具有不同值的像素。由于您的对象将明确具有比背景更亮的颜色,您可以简单地应用阈值分割。只需将 RGB 转换为HSL图像并查看更高的亮度值。还有其他几种方法,如果这些方法不能解决您的问题,请研究它们。遵循这两种方法将返回给您一个带有 blob 的二进制图像。您可以将这些斑点的中心用作色彩鲜艳对象的矩阵坐标。

使用 3 个中心斑点 A'、B' 和 C',您将能够找到您正在寻找的平面,如下图所示:

寻找飞机

解释:一个平面可以表示为一个点(位置)和一个法线(方向)。考虑到您的所有对象都将恰好位于您要查找的平面上,您只需要 3 个点 A、B、C 来表示该平面内的一个三角形。这个三角形法线等于 (A - B) x (C - B) -这里 x 代表叉积- 与平面相同。因此,您的飞机将是这 3 个点和三角形法线中的任何一个。如果对象的尺寸很重要,您将需要考虑它们来定义您的平面位置。

于 2012-02-08T16:50:45.390 回答