如何在C#中比较两个图像?

时间:2010-07-17 13:26:12

标签: c# image-processing computer-vision

我想尝试开发一个跟踪应用程序,其中包含一些文本的第一个图像(假设它可能是“hello World”)和我要与另一个图像进行比较的图像(并假设它是“你好”) 。上面的图像比较,我希望输出中缺少“世界”文本。

我将如何做到这一点?

4 个答案:

答案 0 :(得分:8)

这不会像你想象的那么容易。如果第二个图像是第一个图像的精确副本,但是被裁剪,则可以创建两个比特阵列并查看它们是否重叠。如果不是,我建议您查看有关OCR的this文章。无论哪种方式,这是代码很难做到的事情,如果还有其他方式,我建议你接受它。

答案 1 :(得分:4)

如果您的图片始终包含文本(要进行OCR),则上述建议很好。更通用的应用程序是使用像OpenCV这样的库 - 它为您提供了许多从图像中提取特征(边缘,形状,颜色等)并进行比较的方法。

更简单的方法是使用OpenCV模板匹配方法将一个图像(模板)“比较”到另一个图像(模板)。

由于您使用的是C#,因此应该查看Emgu .NET wrapper for OpenCV

答案 2 :(得分:1)

听起来你会想要某种optical character recognition软件。使用OCR包生成文本,然后运行文本差异。

答案 3 :(得分:1)