我正在使用“Opencv for unity”和 orbbec astra。我将摄像头安装在天花板上,我需要检测地板上是否存在物体。我怎样才能拆除地板?
我不能使用背景减法,因为一段时间后,物体会变成背景。
我试图“记录”一个没有物体作为背景的帧,并且每一帧我都从 orbbec 的深度图像中减去它。它工作得很好,但 5-10 分钟后它开始发出很大的噪音并且它不再可用了。
if(recordBG){
Imgcodecs.imwrite(Application.streamingAssetsPath + "/bg.jpg", imgMat);
recordBG = false;
bg = imgMat;
}
imgMat = imgMat - bg;
Core.inRange(imgMat, scalarMin, scalarMax, imgMat);
我不明白为什么在这段时间之后地板的深度图像会发生变化(相机保持静止)。
有没有其他方法可以去除地板?
编辑(添加图像):
这是垫 bg:
“白色”对象是减法后的 imgMat,我将检测限制在距离地板几厘米处(Core.inRange 函数)
5分钟后也是一样。这是我的问题。两张图片之间没有任何移动