我最近开始对我的Kinect进行黑客入侵,并且想要移除深度阴影。这个影子是由红外线发射器放置在相机的一侧,所以任何近距离的物体都会得到一个很大的阴影,远处的物体很少或没有阴影。删除Kinect深度阴影
阴影长度与阴影两侧最近和最远点之间的距离有关。
我最近开始对我的Kinect进行黑客入侵,并且想要移除深度阴影。这个影子是由红外线发射器放置在相机的一侧,所以任何近距离的物体都会得到一个很大的阴影,远处的物体很少或没有阴影。删除Kinect深度阴影
阴影长度与阴影两侧最近和最远点之间的距离有关。
Kinect的方法 - MapDepthFrametoColorFrame
获取[x,y]
在深度框架中的位置,并使用该方法来填充
是否深度阴影总是出来黑色:这不不处理的影子,因为这图为工作?
如果是这样,您可以使用像时间中位数这样的简单方法来计算图像的背景(更多信息请参见:http://www.roborealm.com/help/Temporal_Median.php),然后每当像素为黑色时,将其设置为该像素位置的背景值。
我不知道它是如何与C#但openni c + +有一个函数称为xnSetViewPoint()唯一的问题是,你失去前20行左右imagedata由于转换。
原因是由于使用了两个不同的传感器,它们彼此靠近放置,但不完全在同一位置。
几周前我对这个问题做了一些初步的工作。我的代码直接在WriteableBitmap而不是深度数据上工作,但如果您只是在进行图像处理,它应该可以工作。该算法并不完美,并将受益于一些更多的调整。如果您更新代码,请告诉我;我很乐意看到你在做什么!
的源代码发布在我的博客:
http://richardpianka.com/2011/02/trackingni-depth-correction/
我很抱歉地说,但那个黑影是由你的身体撞击房间的现货所以它创建阻断推断点引起的一个黑点......什么可以做,但改变基本背景,黑色以外的颜色不同,所以它不会出现明显的阴影
彩色相机和kinect深度相机不具有相同的尺寸,并且红外点的来源不是来自相同的凸轮,其IR投影仪a距离它几厘米(因为这个位移用来计算深度)。
然而,解决方案在这里很容易接近,您的影子数据位于左侧。 ,因此您需要在最后一次已知颜色数据变黑之前将其延长。
为了更好地适应它,请将彩色凸轮数据移到右侧。
也许某种梯形调整会起作用吗? – chriszero 2011-01-31 14:18:15
对于像我这样的Kinectless,它可以帮助您更清楚地了解您需要使用哪些数据。这听起来像是你有一个来自相机的像素网格和距离红外发射器相应的距离网格。对? – 2011-01-31 20:36:12
我有你在两张照片中看到的数据。黑色区域是带有颜色0的阴影。其余的颜色值取决于距离。 – 2011-02-02 16:32:03