做者:馬健
郵箱: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工具。cors
與其餘商業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 SP一、SP2的機器上拷貝過來覆蓋便可。翻譯
繁、日版本的Office 2007原版安裝後都沒有簡體中文版的毛病,但朝鮮語版本的Office 2007問題比簡體中文版更嚴重(後面會詳細說)。3d
德語版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朝鮮語的結果恆爲空,打SP一、SP2補丁也沒用。事實上,我試過在朝鮮語Win7環境下,安裝朝鮮語版本的Office 2007 + SP二、朝鮮語版的Office 2007語言包+語言包SP三、朝鮮語版本的SharePoint Designer 2007,全部方法的結果都是同樣的:朝鮮語OCR的結果永遠爲空。
其實解決的方法很是簡單:把Office 2003的KRCODE.UNI文件複製過來,覆蓋Office 2007的便可。注意不能複製Office 2003的所有文件,由於Office 2003的TWCUTLKR.DLL文件覆蓋Office 2007的之後,OCR朝鮮語時會出現運行錯誤。
如此明顯又如此簡單的一個錯誤,竟然到Office 2007 SP二、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 一、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以前,先用自身的圖像處理功能對圖像進行預處理,使圖像更乾淨、更清晰,有助於提升識別正確率。