【发布时间】:2019-05-11 15:12:25
【问题描述】:
我几乎是 python 新手,对它了解不多。我需要帮助将此伪代码转换为 Python,Python 是通过删除图像中的移动对象来获取背景的。关于伪代码,我不理解第 3、4 和 5 行,所以也许一旦将其转换为 Python,我可以更好地理解它。在第 3 行和第 4 行,我不明白 & 的作用,在最后一行,我什至不明白它是如何计算图像的。
任何帮助将不胜感激。
代码如下:
Mat sequence[3];// the sequence of images to loop through
Mat output, x = 0, y = 0; // looping through the sequence
matchTemplate(sequence[i], sequence[i+1], output, CV_TM_CCOEFF_NORMED)
mask = 1 & (output>0.9) // get correlated part amongst the images
x += sequence[i] & mask + sequence[i+1] & mask; // accumulate background infer
y += 2*mask; // keep count
end of loop;
Mat bg = x.mul(1.0/y); // average background
下面还提供了可供尝试的示例图像:
【问题讨论】:
-
欢迎杰克。更多代码和一些图像会很有用。
-
是算法的问题,还是实现的问题?如果是后者,你应该说你是否理解伪代码,如果不是,为什么。
-
另外,做
for every pixel: take all 3 values from the imgs, drop outlier if any, and bg = avg不是更简单吗? -
我几乎是 python 新手,对它了解不多。关于伪代码,我不理解第 3、4 和 5 行,所以也许一旦将其转换为 Python,我可以更好地理解它。在第 3 行和第 4 行中,我不明白 & 的作用以及在最后一行中,它甚至是如何计算图像的。
-
你可以试试@Wassinger。我想它会起作用的。平均将显示最终图像中的所有对象,但只是有点褪色。没有对象实际上无法获取背景。
标签: python image opencv image-processing computer-vision