目标是在不同的背景上显示此人(即背景删除)。
我正在使用Kinect和微软的Beta Kinect SDK这样做。借助深度,背景被过滤,我们只得到人的形象。
这很简单,我们可以找到在互联网上无处不在的代码。但是,深度信号有噪声,我们得到的像素不属于显示的人。
我应用了一个边缘检测器来查看它是否有用,我现在得到了这个:
这是没有边缘检测的另一个:
我的问题是:我可以通过哪种方式摆脱这些嘈杂的白色像素?
我尝试了形态学操作,但是身体的某些部分被擦除了,但仍留下白色像素。
算法不需要是实时的,我可以在按下“保存图像”按钮时应用它。
我只是尝试使用形状边框上最近的帧进行背景减法。你看到的单个像素是闪烁的,这意味着它是噪音,我可以很容易地摆脱它们。
项目现已结束,这就是我们所做的:使用OpenNI驱动程序手动校准Kinect,OpenNI驱动程序直接提供红外图像。结果非常好,但每次校准都是针对每个Kinect的。
然后,我们在边框上应用了一点透明度,结果看起来非常棒!但是,我无法提供图片。
答案 0 :(得分:5)
你的问题不只是嘈杂的白色像素。你也错过了这个人的重要部分,例如他右手的一部分。我建议您对深度数据的阈值处理更加保守(允许更多的误报)。这会给你更多的噪音像素,但至少你有整个人。
为了摆脱嘈杂的像素,我可以想到几件事:
这些方法并不相互排斥,因此可能值得尝试将它们组合使用。如果我想到其他任何事情,我会在这里回复。
答案 1 :(得分:2)
如果没有其他方法可以解决边缘上的抖动,则可以尝试使用反别名作为后处理。