标签:
作者:马健
邮箱:stronghorse_mj@hotmail.com
发布:2007.12.08
更新:
2012.07.09
按照《MODI中的OCR模块》一文相关内容进行修订
2012.07.02
按照新版Pdg2Pic的情况对内容进行补充
2012.06.11
标题从《在简体中文Office 2003下OCR繁体中文、日文、韩文》改为《用MODI OCR 21种语言》
目录
1 安装MODI
1.1 Office 2003下安装MODI
1.2 Office 2007下安装MODI
1.3 Office 2010下安装MODI
1.4 检查MODI是否正常安装
1.5 在不安装Office的情况下OCR
2 多语言支持
2.1 亚洲语言
2.1.1 繁体中文
2.1.2 日文
2.1.3 朝鲜语
2.1.4 简体中文
2.2 西欧语言(Latin 1)
2.3 东欧语言(Latin 2)
2.4 其他语言
3 用MODI做OCR
4 用其他基于MODI的软件做OCR
MODI全称Microsoft Office Document Imaging,是微软Office 2003/2007所带的光学字符识别(OCR)组件,其OCR引擎采用清华文通和ScanSoft的技术,支持21种语言,是一个方便的OCR工具。
与其他商业OCR软件相比,MODI具有下列特点:
安装MODI时需要牢记的一个事项是:不论Office 2003还是2007,都必须用完整版本的安装,千万不要用阉割过的所谓“精简版”安装,因为MODI组件可能会被顺手割掉了。
Office 2003缺省安装是第一次使用时装MODI, 即在安装完成后,第一次OCR时还会再安装一部分东西。如果本地有安装文件缓存还好说,否则需要插入光盘。第一次OCR完成后,以后的OCR就不再需要安装。
如果想一次就装全,需要在安装时将“典型安装”改成“自定义安装”,然后勾选“选择应用程序的高级自定义”,再在“Office工具”中选中“Microsoft Office Document Imaging”,点击左键,在弹出菜单中选择“从本机运行全部程序”。
与Office2003不同,Office 2007的典型安装根本就不装MODI,因此如果想使用MODI,只能在安装时选择自定义安装,然后手工选择Office工具中的MODI组件,“从本机运行全部程序”。相关过程及图示可以参考微软知识库文章:
http://support.microsoft.com/kb/982760/
这篇文章虽然说的是在Office 2010下安装Office 2007的MODI,但对于Office 2007本身的MODI安装也是参考。
另外需要注意原版简体中文Office 2007安装后只能对英文进行OCR,对简体中文OCR就会出错退出,必须打SP1或SP2补丁后,才能正常使用。 其实补丁就补了一个文件:TWRECC.DLL,此文件也可从其他安装了Office 2003或Office 2007 SP1、SP2的机器上拷贝过来覆盖即可。
繁、日版本的Office 2007原版安装后都没有简体中文版的毛病,但朝鲜语版本的Office 2007问题比简体中文版更严重(后面会详细说)。
德语版MODI在不安装SP补丁包的情况下OCR不会报错,但OCR的结果与安装SP2后有差异,精度比安装后差了许多(我与一个德国用户为此email往来过几次,有实例为证 ,安装前有时甚至会整行识别不出来)。所以保险起见,建议不管是什么语言的Office 2007,在安装后都打补丁,至少到SP2。
看来微软Office产品测试存在问题,如此影响使用的问题居然未在产品正式发布前发现,需要用SP来补。
Office 2010不再提供MODI组件,OCR功能改由OneNote完成,不过微软官方给出了在Office 2010下安装Office 2007版MODI的方法及步骤:
http://support.microsoft.com/kb/982760/
如果不想安装Office,但又希望使用MODI,也可以按照微软的上述建议,从SharePoint Designer 2007安装MODI。
如果MODI随Office被正常安装,从“开始->Microsoft Office->Microsoft Office工具->Microsoft Office Document Imaging”即可启动MODI,打开一个满是文字的单色TIFF文件,点“工具->将文本发送到WORD”菜单,等待片刻,如果正常弹出Word并显示OCR结果,则MODI工作正常,否则不正常。
上面说的都是用MODI自身进行OCR,如果不想用MODI自身做OCR,只是想给基于MODI的第三方软件提供OCR功能,又不想装Office或SharePoint Designer,行不行?答案是“可以”,具体详见我写的《MODI中的OCR模块》,按照其中的说明复制相关文件,导入注册表项即可。 注意这种方法只在没有安装Office 2003/2007的情况下使用,如果已经装了,可能会出现注册表项或文件冲突。
按照《MODI中的OCR模块》中的说明安装出来的MODI,自身没有任何可执行程序,只能提供OCR接口,供第三方软件调用。 因此测试其是否正常,也只能用第三方软件进行测试。
注意测试的时候使用的单色TIFF文件只能含有印刷体文字,不能含有手写体、图像、复杂表格等,以免因为清华文通的容错能力较差而造成误检。
MODI目前共支持21种语言的OCR,但不可能一安装完成后就支持全部语言,如简体中文版Offcie中的MODI正常安装后就只支持简体中文、英文的OCR。 当然路是人走出来的,如果想支持其它语言的OCR,也有以下几条路可以走。
第一条路,也是最正统的路,就是安装相应语言的Office语言包,如想OCR繁体就安装Office 2007的繁体中文语言包,想OCR日文就安装日文语言包。注意Office 2003的语言并未公开发售,只提供给微软的关系企业,因此对于Office 2003来说, 很难走这条路,Office 2007则无此问题。
另外Office 2007语言包的缺省安装同样不装OCR模块,仍然需要选择自定义安装,并手工选择校对工具中对应语言的光学字符识别模块。 而且Office 2007语言包也是有SP补丁包的,目前发行到SP3(Office 2007本身的补丁包到SP2),建议能补还是补吧。
对于简体中文Office 2007来说,安装时如果选择了安装简体中文、英文的光学字符识别模块,则安装时自带CJK及Latin 1的核心文件,因此安装繁体、日语、朝鲜语、西欧11国的语言包以后,即能正常进行这些语言的OCR(朝鲜语还需手工修正,后面详细说),但东欧3国(捷、波、匈),及希腊、俄国、土耳其3国语言的核心文件在安装简体中文Office 2007时并未安装,再安装这6国语言的语言包也只能补上一半的文件,不能补全。因此对这6国语言来说,即使装了Office 2007的对应语言包,在简体Office 2007下仍然不能正常OCR。
因此这第一条路正统是正统,但却只能解决15种语言,不能解决全部21种语言的问题。
第二条路也还算正统,就是按照微软官方网站上推荐的Office 2010下安装MODI的方法,到微软官网下载免费的SharePoint Designer 2007,即点开下面的网址:
http://support.microsoft.com/kb/982760/
然后点击“下载SharePoint Designer 2007”,点开页面后在“更改语言”项处选择自己所需要的语言,即可下载到相应语言的SharePoint Designer 2007,按照上面网址中的说明进行安装,在安装时手工选择安装MODI即可。
这条路比第一条路更彻底,对MODI本身来说,和安装对应语言的原生Office 2007也差不多,对于语言包不能正常支持的6国语言也能够很好地支持。
但对只想OCR的人来说,语言包、SharePoint Designer都比较大,其他语言的Office组件和界面也都是无聊的存在。因此一种更有效率的做法是:到其他安装了语言包,或所需语言的MODI的电脑上,把所需的文件和注册表项复制过来 ,添加到本机的简体中文MODI环境中去。比如想增加繁体OCR,就到安装了繁体语言包,或装了繁体Office 2007的电脑上,把所需的文件和注册表项(本文后面会详细介绍)复制过来。与上面两条路相比,这条路不仅更轻量一些,而且对所有语言均适用。
语言包、SharePoint Designer 2007的安装相对比较简单,因此本文不再赘述。而对于手工复制安装,步骤都是统一的:
下面详细介绍手工复制时,各种语言所需复制的文件及注册表项。
MODI支持的亚洲语言包括简体、繁体、日文、朝鲜语。从相关DLL文件显示的文件信息看,这4种语言的OCR引擎都由清华文通(Tsinghua Wintone)出品。这事其实完全可以理解:对中文OCR的研究,还是中国人自己更有感觉一些,而国内OCR做得比较好的,也就那么两家,别的都是OEM。所以对于有些人把MODI的识别精度与其他OCR软件相比较,我个人觉得没有太大的必要:国外OCR软件在中文部分,也不太可能花太大的力气去独立开发,多半还是像MODI一样与国内合作,而国内活下来的产品PK到现在,在印刷体字符识别精度上已经差距不大了,差距都在图文混排、表格、版面还原、手写体识别等方面。
亚洲语言MODI的注意事项:
下面以繁体中文为例,说明在简体中文Office下手工安装其他语言OCR模块的步骤和方法:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Installer\Components\61BA386016BD0C340BBEAC273D84FD5F]
"1028"=hex(7):76,00,55,00,70,00,41,00,56,00,4f,00,65,00,64,00,40,00,24,00,21,\
00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\
5f,00,31,00,30,00,32,00,38,00,3c,00,00,00,00,00
双击此reg文件导入注册表后,在MODI的OCR选项卡里,“OCR语言”即可看到“中文(繁体)”。注意导入注册表时必须先关闭所有MODI窗口,导入后再打开。
上述文件和注册表项对Office 2003和2007是通用的,而且把Office 2003的文件复制到Office 2007,或反之,均可正常使用。
如果想OCR日文,则需要从日文MODI复制到简体MODI文件夹下的文件为:
JPCODE.UNI
JPPRINT.DAT
JPPRINT2.DAT
JPSERHT.DAT
JPTREE.DAT
TW_SU.DAT
TW_US.DAT
TWRECJ.DLL
TWSJIS32.DLL
需要导入的reg内容为:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Installer\Components\61BA386016BD0C340BBEAC273D84FD5F]
"1041"=hex(7):76,00,55,00,70,00,41,00,56,00,5d,00,5e,00,2a,00,42,00,24,00,21,\
00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\
5f,00,31,00,30,00,34,00,31,00,3c,00,00,00,00,00
上述文件和注册表项对Office 2003和2007是通用的,而且把Office 2003的文件复制到Office 2007,或反之,均可正常使用。
如果想OCR朝鲜语,需要从朝鲜语MODI复制到简体MODI文件夹下的文件为:
DATASIM.DAT
HANGULLB.DAT
KRCODE.UNI
KRDIST.DAT
KRPRINT.DAT
KRSERHT.DAT
KRTREE.DAT
TW_KU.DAT
TW_UK.DAT
TWCUTCKR.DLL
TWCUTLKR.DLL
TWKSC32.DLL
TWLAYKR.DLL
TWRECK.DLL
如果是Office 2003,复制上面的文件即可。如果是Office 2007,复制上面的文件后,OCR朝鲜语的结果恒为空,打SP1、SP2补丁也没用。事实上,我试过在朝鲜语Win7环境下,安装朝鲜语版本的Office 2007 + SP2、朝鲜语版的Office 2007语言包+语言包SP3、朝鲜语版本的SharePoint Designer 2007,所有方法的结果都是一样的:朝鲜语OCR的结果永远为空。
其实解决的方法非常简单:把Office 2003的KRCODE.UNI文件复制过来,覆盖Office 2007的即可。注意不能复制Office 2003的全部文件,因为Office 2003的TWCUTLKR.DLL文件覆盖Office 2007的以后,OCR朝鲜语时会出现运行错误。
如此明显又如此简单的一个错误,居然到Office 2007 SP2、Office 2007语言包SP3均未解决,真不知道是该说朝鲜语在微软根本就不受重视,还是说微软测试部门的人每到测试朝鲜语的时候就都刚好放大假去也?
需要导入的reg内容为:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Installer\Components\61BA386016BD0C340BBEAC273D84FD5F]
"1042"=hex(7):76,00,55,00,70,00,41,00,56,00,5e,00,64,00,34,00,42,00,24,00,21,\
00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\
5f,00,31,00,30,00,34,00,32,00,3c,00,00,00,00,00
注意在简体中文环境下,按照上述步骤设置后,用MODI识别出来的朝鲜语是朝鲜语编码(charset:129),可以存为HTML、doc,并能在Word里正常显示、编辑。如果存为TXT,则需是Unicode编码。 在简体中文XP下,用Unicode编码的朝鲜语文本文件直接用记事本打开是乱码,但在简体Win7下用记事本打开则能正常显示。
如果想在其他语言的MODI(需含CJK的OCR核心模块)下OCR简体中文,则需复制下列文件:
SCCODE.UNI
SCPRINT.DAT
SCPRINT2.DAT
SCSERHT.DAT
SCTREE.DAT
TW_GU.DAT
TW_UG.DAT
TWGB32.DLL
需要导入的reg内容为:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Installer\Components\61BA386016BD0C340BBEAC273D84FD5F]
"2052"=hex(7):76,00,55,00,70,00,41,00,56,00,53,00,2e,00,7d,00,58,00,25,00,21,\
00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\
5f,00,32,00,30,00,35,00,32,00,3c,00,00,00,00,00
上述文件和注册表项对Office 2003和2007是通用的,而且把Office 2003的文件复制到Office 2007,或反之,均可正常使用。
在Windows中,西欧拉丁语系的语言统一用Latin 1代码页(code page 1252)表示,其中MODI支持的包括丹麦语、荷兰语、英语、芬兰语、法语、德语、意大利语、挪威语、葡萄牙语、西班牙语、瑞典语,共11种语言。
MODI的Latin 1 OCR基于Nuance公司的ScanSoft组件,事实上亚洲语言的支持也是将清华文通的模块转换成ScanSoft API接口。Nuance公司的ScanSoft OnimPage在OCR方面还是很有名的,Nuance公司的原名就是ScanSoft,后来才改的。
拉丁语系的支持没有中日韩这么复杂,下面用表格形式说明各语言需要复制到MODI安装目录的文件,及需要导入到
[HKEY_CLASSES_ROOT\Installer\Components\61BA386016BD0C340BBEAC273D84FD5F]
下的注册表项:
语言 | 文件 | 注册表项 |
丹麦语 | DANISH.LNG | "1030"=hex(7):76,00,55,00,70,00,41,00,56,00,51,00,71,00,76,00,40,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,33,00,30,00,3c,00,00,00,00,00 |
荷兰语 | DUTCH.LNG | "1043"=hex(7):76,00,55,00,70,00,41,00,56,00,5f,00,6a,00,41,00,42,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,34,00,33,00,3c,00,00,00,00,00 |
英语 | ENGLISH.LNG | "1033"=hex(7):76,00,55,00,70,00,41,00,56,00,54,00,28,00,38,00,41,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,33,00,33,00,3e,00,26,00,61,00,45,00,4d,00,61,00,65,00,2c,\ 00,37,00,71,00,39,00,2a,00,44,00,58,00,64,00,55,00,40,00,45,00,50,00,69,00,\ 3d,00,00,00,00,00 |
芬兰语 | FINNISH.LNG | "1035"=hex(7):76,00,55,00,70,00,41,00,56,00,56,00,35,00,4e,00,41,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,33,00,35,00,3c,00,00,00,00,00 |
法语 | FRENCH.LNG | "1036"=hex(7):76,00,55,00,70,00,41,00,56,00,57,00,3f,00,57,00,41,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,33,00,36,00,3c,00,00,00,00,00 |
德语 | GERMAN.LNG | "1031"=hex(7):76,00,55,00,70,00,41,00,56,00,52,00,77,00,24,00,41,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,33,00,31,00,3c,00,00,00,00,00 |
意大利语 | ITALIAN.LNG | "1040"=hex(7):76,00,55,00,70,00,41,00,56,00,5b,00,57,00,7d,00,41,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,34,00,30,00,3c,00,00,00,00,00 |
挪威语 | NORSK.LNG | "1044"=hex(7):76,00,55,00,70,00,41,00,56,00,60,00,70,00,4a,00,42,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,34,00,34,00,3c,00,00,00,00,00 |
葡萄牙语 | PORT.LNG | "1046"=hex(7):76,00,55,00,70,00,41,00,56,00,62,00,7d,00,5d,00,42,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,34,00,36,00,3c,00,00,00,00,00 |
西班牙语 | SPANISH.LNG | "3082"=hex(7):76,00,55,00,70,00,41,00,56,00,5e,00,7d,00,74,00,72,00,26,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,33,00,30,00,38,00,32,00,3c,00,00,00,00,00 |
瑞典语 | SWEDISH.LNG | "1053"=hex(7):76,00,55,00,70,00,41,00,56,00,69,00,50,00,47,00,43,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,35,00,33,00,3c,00,00,00,00,00 |
注意:
还有一个比较有趣的事情是:MODI的亚洲版本只支持一种语言加英语,如简体中文的Office可以选择简体和英文的OCR,繁体Office也仅可选择繁体和英文的OCR。而欧洲版的Office却支持多种语言的OCR,而且还每家不一样,如法语版Office可选择英文、法语、荷兰语、德语、西班牙语的OCR,而德语版Office仅支持英、法、德、意的OCR,意大利版Office支持的和德语版一样,俄语版 、捷克版除英语和自身语言外,同样支持德语的OCR。看来德国人的人品还真不是一般的好!
在Windows中,东欧拉丁语系的语言统一用Latin 2代码页(code page 1250)表示,其中MODI支持的包括捷克语、波兰语、匈牙利语,共3种语言。
MODI的东欧语言识别同样基于Nuance公司的ScanSoft组件。下面用表格形式说明各语言需要复制到MODI安装目录的文件,及需要导入到
[HKEY_CLASSES_ROOT\Installer\Components\61BA386016BD0C340BBEAC273D84FD5F]
下的注册表项:
语言 | 文件 | 注册表项 |
捷克语 | CZECH.LNG | "1029"=hex(7):76,00,55,00,70,00,41,00,56,00,50,00,6b,00,6d,00,40,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,32,00,39,00,3c,00,00,00,00,00 |
波兰语 | POLISH.LNG | "1045"=hex(7):76,00,55,00,70,00,41,00,56,00,61,00,76,00,53,00,42,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,34,00,35,00,3c,00,00,00,00,00 |
匈牙利语 | HUNGAR.LNG | "1038"=hex(7):76,00,55,00,70,00,41,00,56,00,59,00,4b,00,6a,00,41,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,33,00,38,00,3c,00,00,00,00,00 |
注意:
除上述亚洲、Latin 1、Latin 2外,MODI还支持希腊语、俄语、土耳其语。这3种语言的识别同样基于Nuance公司的ScanSoft组件。下面用表格形式说明各语言需要复制到MODI安装目录的文件,及需要导入到
[HKEY_CLASSES_ROOT\Installer\Components\61BA386016BD0C340BBEAC273D84FD5F]
下的注册表项:
语言 | 文件 | 注册表项 |
希腊语 | GREEK.SHP GREEK.LNG |
"1032"=hex(7):76,00,55,00,70,00,41,00,56,00,53,00,7e,00,2d,00,41,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,33,00,32,00,3c,00,00,00,00,00 |
俄语语 | CYRILLIC.SHP RUSSIAN.LNG |
"1049"=hex(7):76,00,55,00,70,00,41,00,56,00,65,00,34,00,79,00,42,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,34,00,39,00,3c,00,00,00,00,00 |
土耳其语 | TURKISH.SHP TURKISH.LNG |
"1055"=hex(7):76,00,55,00,70,00,41,00,56,00,6b,00,5d,00,59,00,43,00,24,00,21,\ 00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,4f,00,43,00,52,00,\ 5f,00,31,00,30,00,35,00,35,00,3c,00,00,00,00,00 |
注意:
用MODI做OCR的步骤为:
上述步骤中的第2步所打开的TIFF文件,理论上说可以用MODI自身的打印机生成(如果在安装时选择了安装MODI打印机的话),即将要OCR的图像直接打印到MODI打印机,然后再OCR,但是我自己从来不采用打印法生成TIFF,也绝不主张任何人使用这种方法生成TIFF。我一直坚持的步骤是:先用ComicEnhancer Pro或其他软件将需要OCR的图像处理成单色TIFF,然后用TiffToy合并,再用MODI发送到Word。
这样做的原因很简单,打印出来的图像质量与用软件转换出来的图像质量,差距实在是太大了。不信的人找一张灰度或彩色图像打印一下,再与转换出来的比较一下即可明白。
这种差距来自几个方面:
如前所述,MODI的接口是开放的,因此很容易在MODI基础上,为自己的软件集成OCR功能。有的软件干脆把MODI包一下就当成OCR软件往外推,照样混得风生水起。
别人的事情不去说它,我自己开发的集成了MODI的软件包括(按字母顺序排列):
这些软件虽然都用了MODI,但又有一些具体的特色,下面逐一加以介绍。
DjVuToy在OCR方面,完全模拟DjVu官方权威软件Caminova Document Express 7.5 Enterprise(简称deent75),包括DjVu和PDF中的隐藏文本、外挂字体。对于横排文字,其字符位置精度与deent75的差距在小数点后第4位——DjVuToy只精确到小数点后第4位,deent75保留的位数则更多。
但DjVuToy也有其他特色:
MODI(准确点说应该是清华文通)本身能够识别竖排文字,但在某些情况下可能会在不适当的地方对竖排行进行断行,需要在后处理中进行处理。
而在拉丁语系识别方面,MODI(准确点说是ScanSoft)有一个有趣的特点:如果原文中一个很长的单词正好在行尾,出于排版需要而将单词切分到上下两行,中间用短横线隔开,则MODI识别后会自动将单词拼接到一起,并去掉中间的短横线。比如information这个词如果正好位于某行的行尾,又稍微超出一点,则排版软件可能会为了排版整齐而将这个单词排成informa-tion,并将tion放到下一行的行首。则MODI在识别时,识别出来的是整个单词information,而不会是informa-tion。
在DjVu和PDF中,这种情况都会造成一点小问题:下一行的行首可能会出现空白,因为行首的半个单词被合并到上一行去了。这个问题其实完全不影响使用,习惯了就好,不习惯则可能会感到奇怪,我和一个德国用户也曾为此费过口舌。 在这一点上ABBYY做得比MODI强:ABBYY也能合并单词,但不是合并到上一行,而是合并到下一行的行首,这样可能看起来更自然一些。
事实上,这两个软件所有与OCR相关的技术和代码均来自DjVuToy,所以特点也差不多。不过Pdg2Pic针对清晰版PDG文件特性,做了一点改进:MODI(其实是清华文通)在OCR简体中文时,如果整页都是文字,一般不会有问题,但如果是图文混排,则在某些情况下可能会造成软件崩溃!很多制作精良的清晰版PDG文件在图文混排时,一般会把文字层与插图层分开(在Pdg2Pic中显示为T3类PDG),Pdg2Pic在OCR这样的PDG文件时,自动选择仅针对文字层进行OCR,避免插图进来搅局 造成麻烦。
MODI在识别简、繁、日、韩的时候,有一个特点:如果需要识别的文字少于8个字,就会报告识别结果为空,而识别其他语言的时候就没这种问题。看来这是清华文通与ScanSoft的区别。
偏偏对于字幕来说,一句话有很大的可能不足8个字,因此如果老老实实一次识别一条字幕,很多时候就会出现结果为空的情况。IdxSubOcr的解决办法也很简单:把多条字幕拼成一张大图,识别完成后再对文本进行拆分。这样不仅避开了这个问题,而且速度也快了不少。
TextForever中的OCR功能其实是我最早实现的OCR功能,所以有一点探索的味道。与MODI的“发送到Word”相比,TextForever的缺点是排版功能做得不好,需要用TextForever的其他功能来处理段落。
TextForever比MODI的“发送到Word”强的地方是:
这个软件的OCR功能是从TextForever搬过来的,只不过一次只能OCR当前图像上选定范围中的内容。比较有特色的地方是允许在进行OCR之前,先用自身的图像处理功能对图像进行预处理,使图像更干净、更清晰,有助于提高识别正确率。
标签:
原文地址:http://www.cnblogs.com/huanzxj/p/5840742.html