我正在尝试通过使用 openCV 创建一个更简单的 OCR 引擎。我有这张图片:https ://dl.dropbox.com/u/63179/opencv/test-image.png
我已将所有可能的字符保存为图像并尝试在输入图像中检测这些图像。
从这里我需要识别代码。我一直在尝试 matchTemplate 和 FAST 检测。两者似乎都失败了(或者更有可能:我做错了什么)。
当我使用 matchTemplate 方法时,我使用 Sobel 找到了输入图像和参考图像的边缘。这提供了一个工作结果,但准确性不够好。
使用 FAST 方法时,我似乎无法从 cvExtractSURF 方法中获得任何有趣的描述。
关于能够阅读此类代码的最佳方式的任何建议?
更新 1 (2012-03-20)
我已经取得了一些进展。我试图找到字符的边界矩形,但矩阵字体正在杀死我。请参阅以下示例:
我的字体:https ://dl.dropbox.com/u/63179/opencv/IMG_0873.PNG
我的字体填写:https ://dl.dropbox.com/u/63179/opencv/IMG_0875.PNG
其他字体:https ://dl.dropbox.com/u/63179/opencv/IMG_0874.PNG
正如在示例中看到的,我发现了一种不太复杂的字体的边界矩形,如果我可以填充字体中点之间的空间,它也可以工作。有没有办法用opencv实现这一点?如果我能找到每个字符的边界框,那么识别字符会容易得多。
有任何想法吗?
更新 2 (2013-03-21)
好的,我很幸运找到了边界框。见图片: https ://dl.dropbox.com/u/63179/opencv/IMG_0891.PNG
我不知道从这里去哪里。我尝试使用 matchTemplate 模板,但我想在这种情况下这不是一个好的选择?我想在更大的图片中搜索完全匹配时会更好?
我尝试使用 surf 但是当我尝试使用 cvExtractSURF 为每个边界框提取描述符时,我得到 0 个描述符......有什么想法吗?
哪种方法最适合用于将边界框与参考图像进行匹配?