【问题标题】:How can I compare two images in C#?如何在 C# 中比较两个图像?
【发布时间】:2010-07-17 13:26:11
【问题描述】:

我想尝试开发一个跟踪应用程序,其中第一个图像包含一些文本(假设它可能是“hello World”)和我想与另一个图像比较的图像(假设它是“hello”) .上图对比,我要的输出是缺少“World”文字。

我会怎么做?

【问题讨论】:

    标签: c# image-processing computer-vision


    【解决方案1】:

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

    【讨论】:

    • 谢谢。搜索文字的其他简单方法不是就在图片上吗?
    • 不,没有。这就是验证码如此有效的原因。
    【解决方案2】:

    如果您的图像始终包含文本(要进行 OCRed),上述建议非常有用。更通用的应用程序是使用 OpenCV 之类的库 - 它为您提供了多种从图像中提取特征(边缘、形状、颜色等)并进行比较的方法。

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 从 OCR 获得文本文件后,请考虑作为 TortoiseSVN 的一部分提供的免费 diffing 实用程序。 BeyondCompare 也很出色。
      【解决方案4】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 2017-02-22
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 2015-05-27
      • 2011-08-29
      相关资源
      最近更新 更多