Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 每像素阈值_Image Processing_Opencv_Threshold_Background Subtraction - Fatal编程技术网

Image processing 每像素阈值

Image processing 每像素阈值,image-processing,opencv,threshold,background-subtraction,Image Processing,Opencv,Threshold,Background Subtraction,我想知道在opencv中是否可能有每像素的阈值。例如,p(x,y)应该高于100,然后p(x+1,y)应该高于101 您可以将其视为背景减法。这样背景前面的一切都会保留下来 我是这样想的。我有一个图像,然后是另一个图像。我减去它们。这意味着剩下的所有内容都应该高于阈值 例如: 右侧是启动相机(kinect)时拍摄的图像。然后左边的图像就是当前的相机馈送——左边的图像 守则: cvSub(深度、深度、差异、空值) 由于没有任何变化,这应该是更黑的(我可以理解有一些噪音) 这可能是因为还有负值还是

我想知道在opencv中是否可能有每像素的阈值。例如,p(x,y)应该高于100,然后p(x+1,y)应该高于101

您可以将其视为背景减法。这样背景前面的一切都会保留下来

我是这样想的。我有一个图像,然后是另一个图像。我减去它们。这意味着剩下的所有内容都应该高于阈值

例如:

右侧是启动相机(kinect)时拍摄的图像。然后左边的图像就是当前的相机馈送——左边的图像

守则:

cvSub(深度、深度、差异、空值)

由于没有任何变化,这应该是更黑的(我可以理解有一些噪音)

这可能是因为还有负值还是什么

Thx提前

看一看问题。这对你有帮助吗


您还可以尝试使用for扫描每个像素,并增加阈值…

我想您需要
cvCmp
()


您可以创建一个与图像大小相同的矩阵t,其中包含所有阈值,然后只需执行
Mat res=p>t。这能解决你的问题吗?在opencv和IplImages中这怎么可能?哦,对不起。我刚才谈到的是C++ API和CV::Mat类型。我不知道这样的东西是否可以用C API实现,事实上它是在javacv中实现的。但是我试过使用和iplimage和cvMat,但两者似乎都不起作用。我想这可以解决问题,尽管我无法完全确认,因为我的结果包含了大量的噪声,这是由Kinect造成的。只需在其中插入一些内容:)cvSub应该将负值截断为0(在C中是这样的)。通过执行cvAbsDiff、cvCmp,然后执行cvCmp和结果,可以获得相同的效果。
// make sure threshold is zero to start with
cvZero(thresholded);
// for pixels where current > background, sets thresholded = high value
cvCmp(current, background, thresholded, CV_CMP_GT);