2010-04-15 57 views
5

我正在开发一个项目,以预定义的时间间隔通过网络摄像头捕获图像,并不断将图像与模板进行比较(良好图像),并在差异大于容差时给出错误组。使用OpenCV精确比较2个图像的差异

我正在使用OpenCV。想要建议我应该怎么做,例如最好的方法等。

欣赏有没有人可以帮助我。谢谢。

回答

3

一个简单的方法是只取图像对之间的L2范数:

double l2_norm = cvNorm(img1, img2); 

你有设置合适的阈值进行试验。当然,这种方法不适用于照明变化,视点变化等,但它简单快速。

+0

嗨,我设法让我的项目,利用通过鼠标拖动选择的投资回报率作为与连续运行视频帧匹配的模板。我想问一下,如何输出模板匹配结果,例如如果发现模板 - > functionA(),如果找不到模板 - > functionB()。 如果有人能够就此问题给我启发,敬请欣赏。提前致谢! – cys 2010-04-16 10:15:07

+0

您需要使用cvMatchTemplate()将模板与图像进行比较,然后在结果图像中查找最小或最大位置和值(取决于您是否基于mse或相关性进行匹配)。你需要在这个值上设置一个阈值,以确定你的接下来会发生哪种补丁。 – jeff7 2010-04-16 11:13:13