如何在C#中比较两张图片?

4

我想尝试开发一个轨迹应用程序,其中第一张图片包含一些文本(假设它可能是“Hello World”),我想将该图片与另一张图片进行比较(假设它是“Hello”)。在上述图像比较中,我希望输出结果缺少“World”文本。

我该如何做到这一点?

4个回答

8

这并不像你想象的那么容易。如果第二张图是第一张的精确副本,但被裁剪了,你可以创建两个位数组并查看它们是否重叠。如果它们没有重叠,我建议你查看这篇关于OCR的文章。无论如何,这是一件非常难以用代码实现的事情,如果有其他方法,我建议你尝试。


有没有其他简单的方法来搜索图像中的文字?谢谢。 - Tirth
不,没有。这就是为什么验证码如此有效的原因。 - Jouke van der Maas

4
上述建议适用于您的图像始终包含文本(要进行OCR处理)。更通用的应用程序是使用类似OpenCV的库 - 它提供了许多从图像中提取特征(边缘、形状、颜色等)并进行比较的方法。
甚至更简单的方法是使用OpenCV模板匹配方法,它将一个图像(模板)与另一个图像进行“比较”。
由于您使用的是C#,因此应查看Emgu .NET wrapper for OpenCV


1

看起来你需要一些光学字符识别软件。使用OCR软件生成文本,然后运行文本差异比较。


一旦您从OCR获得了文本文件,请考虑使用作为TortoiseSVN一部分的免费差异化实用程序。BeyondCompare也非常出色。 - GregC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接