【问题标题】:Perceptual image hashing感知图像散列
【发布时间】:2012-09-17 18:01:51
【问题描述】:

好的。这是(非英语)OCR 项目的一部分。我已经完成了诸如去歪斜、灰度化、字形分割等预处理步骤,现在正停留在最重要的一步:通过将字形与字形图像数据库进行比较来识别字形,因此需要设计一个强大且高效的感知图像哈希算法。

由于许多原因,我需要的函数不会像通用图像比较问题所要求的那样复杂。一方面,我的图像始终是灰度的(如果这使识别任务更容易,甚至是黑白的)。另一方面,这些字形更“以笔划为导向”,结构比照片更简单。

我已经尝试了一些我自己的想法和一些借鉴的想法来定义一个好的相似度指标。一种方法是将图像划分为 M x N 单元格的网格,并取每个单元格的平均“黑度”来为该图像创建一个散列,然后取散列的欧几里德距离来比较图像。另一个是在每个字形中找到“角落”,然后比较它们的空间位置。它们都没有被证明是非常健壮的。

我知道有像 SIFT 和 SURF 这样更强大的候选者,但我有 3 个充分的理由不使用它们。一是我猜它们是专有的(或以某种方式获得专利)并且不能用于商业应用程序。其次,它们是非常通用的,对于我比较简单的图像领域来说可能是一种矫枉过正。第三是没有可用的实现(我使用的是 C#)。我什至尝试将 pHash 库转换为 C#,但仍未成功。

所以我终于来了。有谁知道代码(C# 或 C++ 或 Java 或 VB.NET,但不应该需要任何不能在 .NET 世界中使用的依赖项)、库、算法、方法或想法来创建一个健壮且高效的散列算法,可以经受住轻微的视觉缺陷,如平移、旋转、缩放、模糊、斑点等。

【问题讨论】:

    标签: c# image hash ocr


    【解决方案1】:

    看起来您已经尝试过类似的方法,但它可能仍然有用:

    https://www.memonic.com/user/aengus/folder/coding/id/1qVeq

    【讨论】:

    • 谢谢哥们。是的,我以前看过这篇文章。但正如作者所说:“但是,如果有修改——比如添加了文本或拼接了一个头部,那么平均哈希可能无法完成这项工作。虽然 pHash 速度较慢,但​​它非常容忍微小的修改(未成年人不到图片的 25%)。” OCR 图像通常有轻微(有时很严重)的转换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    相关资源
    最近更新 更多