某老师让我们翻译的某扫描电子书的时候还要求顺带把英文内容抄上去,此举真是让我感叹本科生的时间就像那啥一样,别人一拉水箱就给冲掉了。不甘,于是想到用OCR来完成这个工作,至少能够节省一些时间,哪怕这些时间用来睡觉。
一共找到两个OCR工具。一个是开源的,叫作gocr(在sf上,不过名字叫jocr,作者说因为gocr的名字在sf上已经被别人占用了);还有一个d版的,Micro$oft Office 2003。
当然先说后一个。很简单,先对着要抓取的文字截个图,注意就是在一定的范围内越清晰越好,这个也不好把握,有兴趣可以多多尝试,没兴趣也无所谓,做事情最重要。扯远了,启动PrintSpooler服务(可能很多机器默认是开启的),把截下来的图片用Micro$oft Office Document Imaging打印成mdi文件格式。打印完以后Document Imaging会自动跳出来,点工具里的用OCG识别文本,完成之后就可以选定复制了。还有一个要注意的是,Document Imaging很好很强大,可以选择是按照中文识别还是按照英文识别,这个根据实际需求设置,但是如果按照中文去识别英文效果会非常差。
开源的叫作gocr,其实还有一个Google一直支持的Tesseract,但是因为后者只有代码下载,完了还要编译,比较麻烦,而且在gocr的网站上也有一些实例说明gocr的效果比Tesseract强大。gocr有一个ready to use的windows binary版本,可以直接从网站上下载。gocr只支持pnm等格式,幸好很多看图软件都支持将常见的jpg什么的转成pnm(至少XnView是支持的,据我所知如果只有WindowsXP的那个自带的图象查看器的话就比较麻烦了)。转成pnm格式之后执行一个简单的命令即可输出结果,我试了一下,对于简单的英文效果是很理想的。当然,这个肯定是不支持中文了,与M$的东西比起来还有很大差距。

