C# OCR无法识别数字(tesseract 2)

4
我正试图从以下内容中提取数字:
但是失败了,返回了一个~。我正在使用谷歌的tesseract 2,使用C#(开源C#包装器),现在我想知道,这个图像是否太烂了,不能用于OCR?
因为我认为这些数字很清晰明了。
您有没有其他OCR引擎可以解决这个问题? 编辑 我也尝试了 Asprise OCR (http://asprise.com/product/ocr/selector.php),但它也无法解析该图像...

这是为我的公司而做的。考虑到任务的规模,我确信他们不会为此付出大量资金,而我也无法支付 ^_^。这就是两难的境地 :/。但你认为我的图像对于的OCR引擎来说太糟糕了吗? - CoolStraw
3
你推荐其他的开源引擎或者甚至是免费引擎吗? - CoolStraw
1
我还没有找到一个好的开源OCR。如果有这样的存在,我会非常感兴趣了解一下。据我所知,在文档处理方面有很多资金涉及其中,其中按点击(文档或页面)收费。 - Otávio Décio
2
是的,那是一张糟糕的图片。字号太小了,文本没有反锯齿处理,因此太过锐利。后者可能是扫描仪造成的伪影。 - Hans Passant
@sixletter 谢谢,我会看一下这个培训资料。@Hans:你不知道一些技巧可以让这张图片看起来更好吗?比如使用更大的字体和更加醒目的颜色? - CoolStraw
显示剩余7条评论
2个回答

7

我建议进行大小调整。在IE中将该页面缩放到200%,然后截屏,打印为PDF并导入使用tessnet的程序。Tess完美地完成了它的工作!除非我读错了数字:-)

虽然置信度为140(如果您想知道,低于100更好)。当然,当我尝试原始大小时,我没有得到正确的数字;我只有大约一半的数字、一堆字母和其他垃圾。不够好,但是更好了。

t2似乎喜欢特定大小的图像。

我的程序会处理以使其工作。建议使用.net GDI +进行转换为32位,并使用高质量双三次插值法进行调整大小。这似乎在某种程度上“填补了空白”。

尝试适合的大小-我发现,太大或太小,tesseract的性能会有所不同。

这两个问题都是预处理,很容易,您可能认为tesseract会尝试;但是,我知道如何调整大小和插值;我不知道如何OCR!因此我愿意妥协。


可以给我你用来重新处理图像质量的代码,这样我就可以插入并测试了吗?谢谢。 - CoolStraw
@CoolStraw - 其实,我用Alfred Bolliger的PrintKey 2000对IE8截屏,用PDFMachineWhite免费版打印出来,然后我的程序使用verydoc的pdf2vec自动将它转换为WMF。最后,使用VB.NET/GDI+在UI中呈现和调整了WMF大小,允许我拖动选择矩形并从弹出窗口中选择OCR,保存一段代码片段以便另一个进程使用tessnet进行OCR。(我忍不住要说!)不要那么辛苦工作。使用像这样的代码(http://www.bobpowell.net/highqualitythumb.htm)只能放大而不能缩小来调整大小。 - FastAl
哥们,你真是太牛了!谢谢你,你解决了我的难题! - CoolStraw

1

你的图片分辨率太低了 -- 只有96 DPI,可能是截图。将其重新缩放为300 DPI,tessnet2就能够识别它了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接