[转]浅谈OCR之Tesseract
轉(zhuǎn)載請注明出處:http://www.cnblogs.com/brooks-dotnet/archive/2010/10/05/1844203.html?
淺談OCR之Tesseract
?
光學字符識別(OCR,Optical Character Recognition)是指對文本資料進行掃描,然后對圖像文件進行分析處理,獲取文字及版面信息的過程。OCR技術(shù)非常專業(yè),一般多是印刷、打印行業(yè)的從業(yè)人員使用,可以快速的將紙質(zhì)資料轉(zhuǎn)換為電子資料。關(guān)于中文OCR,目前國內(nèi)水平較高的有清華文通、漢王、尚書,其產(chǎn)品各有千秋,價格不菲。國外OCR發(fā)展較早,像一些大公司,如IBM、微軟、HP等,即使沒有推出單獨的OCR產(chǎn)品,但是他們的研發(fā)團隊早已掌握核心技術(shù),將OCR功能植入了自身的軟件系統(tǒng)。對于我們程序員來說,一般用不到那么高級的,主要在開發(fā)中能夠集成基本的OCR功能就可以了。這兩天我查找了很多免費OCR軟件、類庫,特地整理一下,今天首先來談?wù)凾esseract,下一次將討論下Onenote 2010中的OCR API實現(xiàn)。可以在這里查看OCR技術(shù)的發(fā)展簡史。
測試代碼下載
轉(zhuǎn)載請注明出處:http://www.cnblogs.com/brooks-dotnet/archive/2010/10/05/1844203.html?
?
1、Tesseract概述
Tesseract的OCR引擎最先由HP實驗室于1985年開始研發(fā),至1995年時已經(jīng)成為OCR業(yè)內(nèi)最準確的三款識別引擎之一。然而,HP不久便決定放棄OCR業(yè)務(wù),Tesseract也從此塵封。
數(shù)年以后,HP意識到,與其將Tesseract束之高閣,不如貢獻給開源軟件業(yè),讓其重煥新生--2005年,Tesseract由美國內(nèi)華達州信息技術(shù)研究所獲得,并求諸于Google對Tesseract進行改進、消除Bug、優(yōu)化工作。
Tesseract目前已作為開源項目發(fā)布在Google Project,其項目主頁在這里查看,其最新版本3.0已經(jīng)支持中文OCR,并提供了一個命令行工具。本次我們來測試一下Tesseract 3.0,由于命令行對最終用戶不太友好,我用WPF簡單封裝了一下,就可以方便的進行中文OCR了。
?
1.1、首先到Tesseract項目主頁下載命令行工具、源代碼、中文語言包:
?
1.2、命令行工具解壓縮后如下(不含1.jpg、1.txt):
?
1.3、為了進行中文OCR,將簡體中文語言包復制到【tessdata】目錄下:
?
1.4、在DOS下切換到Tesseract的命令行目錄,查看一下tesseract.exe的命令格式:
?
Imagename為待OCR的圖片,outputbase為OCR后的輸出文件,默認是文本文件(.txt),lang為使用的語言包,configfile為配置文件。
?
1.5、下面來測試一下,準備一張jpg格式的圖片,這里我是放到了和Tesseract同一個目錄中:
?
輸入:tesseract.exe 1.jpg 1 -l chi_sim,然后回車,幾秒鐘就OCR完成了:
這里注意命令的格式:imagename要加上擴展名.jpg,輸出文件和語言包不需要加擴展名。
?
OCR結(jié)果:
?
可以看到結(jié)果不是很理想,中文識別還說的過去,但是英文、數(shù)字大都亂碼。不過作為老牌的OCR引擎,能做到這種程度已經(jīng)相當不錯了,期待Google的后續(xù)升級吧,支持一下。
?
2、使用WPF封裝Tesseract命令行
2.1、鑒于命令行書寫容易出錯,且對最終用戶很不友好,我做了一個簡單的WPF小程序,將Tesseract的命令行封裝了一下:
?
左邊選擇圖片、預(yù)覽,右邊選擇輸出目錄,顯示OCR結(jié)果,支持本地及網(wǎng)絡(luò)圖片的預(yù)覽。
?
2.2、為了使得圖片預(yù)覽支持縮放、移動,原本打算使用微軟的Zoom It API,可惜不支持WPF,于是使用了一個第三方的類:
圖片縮放、移動工具類?
?
?
2.3、除了使用鼠標。還可以使用滾動條調(diào)節(jié)圖片預(yù)覽效果:
數(shù)據(jù)綁定?
?
??
2.4、由于Tesseract命令行不支持直接OCR網(wǎng)絡(luò)圖片,故先下載:
圖片下載?
?
??
2.5、使用Process來調(diào)用Tesseract命令行:
調(diào)用Tesseract命令行?
?
??
2.6、測試本地圖片:
?
2.7、測試網(wǎng)絡(luò)圖片:
?
小結(jié):
本次我們簡單討論了下Tesseract的用法,作為一款開源、免費的OCR引擎,能夠支持中文十分難得。雖然其識別效果不是很理想,但是對于要求不高的中小型項目來說,已經(jīng)足夠用了。這里有一份免費OCR工具列表,感興趣的朋友可以研究一下。下一次將測試一下Onenote 2010中OCR功能,以及如何調(diào)用其API,為項目所用。
轉(zhuǎn)載于:https://www.cnblogs.com/Crysaty/p/6062716.html
總結(jié)
以上是生活随笔為你收集整理的[转]浅谈OCR之Tesseract的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Maven命令行使用:mvn clean
- 下一篇: 洛谷P2412 查单词 [trie树 R