2012-09-17 69 views
0

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

由于多种原因,所要求的通用图像比较的问题,我需要的功能也不会那么复杂。首先,我的图像总是灰度(如果这使识别任务变得更容易)。另一方面,这些字形更加“中风”,结构比照片更简单。

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

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

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

+0

我自己在C#中寻找同样的东西。有幸找到了一些东西,但? – Thomas

+0

还没有。可能需要阅读一些研究论文,并在其他作品中编写我们自己的代码。我上面提到的两种技术也来自一些论文。 – dotNET

回答

0

看起来你已经尝试过类似这样的东西,但它可能仍然是有些用处:

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

+0

谢谢你。是的,我以前经历过这篇文章。但正如作者所言:“然而,如果有修改 - 就像添加了文本或将头部拼接到位,那么平均哈希可能不会完成这项工作。虽然pHash比较慢,但它很容易进行小修改(轻微少于图片的25%)。“ OCR图像往往不会有轻微的(有时是严重的)转换。 – dotNET