【发布时间】:2012-06-04 14:55:58
【问题描述】:
我想知道在 opencv 中是否可以为每个像素设置一个阈值。例如 p(x,y) 应大于 100,然后 p(x+1,y) 应大于 101。
您可以将其视为背景减法。这样背景前面的所有东西都保留下来了。
我在想这样的事情。我有一个图像,然后是另一个图像。我减去它们。这意味着剩下的一切都应该高于阈值。
例如:
右侧是启动相机(kinect)时拍摄的图像。然后左边的图像是当前的相机馈送 - 左侧的图像。
代码:
cvSub(depth, depthInit, difference, null);
由于没有任何变化,这应该更黑(我可以理解有一些噪音)
这可能是因为还有负值吗?
提前谢谢
【问题讨论】:
-
您可以创建一个与包含所有阈值的图像大小相同的矩阵 t,然后执行
Mat res = p > t;。这能解决你的问题吗? -
如何在带有 IplImages 的 opencv 中实现这一点?
-
抱歉。我在谈论 C++ API 和 cv::Mat 类型。我不知道这样的事情是否可以使用 C API。
-
其实是在javacv中。但我试过了,iplimage 和 cvMat 似乎都不起作用。
标签: image-processing opencv threshold background-subtraction