感知图像散列

时间:2012-09-17 18:01:52

标签: c# image hash ocr

行。这是(非英语)OCR项目的一部分。我已经完成了预处理步骤,例如纠偏,灰度,字形分割等,现在我停留在最重要的一步:通过将字形与字形图像数据库进行比较来识别字形,从而需要设计一个强大而有效的感知图像哈希算法。

由于许多原因,我需要的功能不会像通用图像比较问题那样复杂。首先,我的图像总是灰度级(甚至B& W,如果这使得识别任务更容易)。另一方面,这些字形更“面向笔画”,结构比照片更简单。

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

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

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

1 个答案:

答案 0 :(得分:0)

看起来你已经尝试了类似的东西,但它仍然有用:

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