如何使用Python進行OCR識別圖片中的文字
朋友需要一個工具,將圖片中的文字提取出來。我?guī)退诰W上找了一些OCR的應用,都不好用。所以準備自己研究,寫一個Web APP供他使用。
OCR1,全稱Optical character recognition,或者optical character reader,中文譯名叫做光學文字識別。它是把圖像文件中的手寫文本,打印文本轉換為機器編碼文本的一種方法。
OCR技術廣泛用于識別打印紙張中的文字數(shù)據(jù) -- 比如護照,支票,銀行聲明,收據(jù),統(tǒng)計表單,郵件等。OCR的早期版本,需要對圖片中的每個文字都進行訓練,一次只能作用于一種字體。高級的版本增加了很大的識別率,可以同時識別現(xiàn)在很多流行的字體,支持不同種類格式的圖片文件。一些系統(tǒng)可以生成接近于原來圖片格式的輸出,包括圖片,排版,以及其它非文本組件,這也叫做版面還原。
工具
Tesseract
現(xiàn)在最出名,最常用的OCR就是谷歌的tesseract OCR engine2。最新的版本是Tesseract4。Tesseract的主要開發(fā)者是Ray Smith3.
Tesseract支持unicode(UTF-8),安裝后即可識別超過100種語言。
Tesseract支持不同的輸出可是:普通文本,hOCR(html),PDF,TSV,invisible-text-only PDF。在master分支,還試驗性地支持ALTO(XML)格式。
請記住,在大多數(shù)情況下,為了獲得更好的OCR結果,你需要為提供給Tesseract的圖片提升質量4.
Tesseract可以通過訓練來識別其它語言和其它字體5.
另外,有很多第三方的Tesseract GUI應用??梢灾苯酉螺d使用6。
pytesseract
Python-tesseract7(pytesseract)是Google Tesseract ORC引擎的封裝。首次commit的2014年。用這個庫,可以很方便地編寫腳本,可以用它來識別所有可以由PIL識別的圖片格式,包括jpeg, png, gif, bmp, tiff等, 而tesseract-orc本來只支持tiff和bmp兩種格式。
如果在腳本中使用,識別的文本可以輸出為Python字符串,而不是直接輸出到文件中。
另外,這個代碼庫只有一個文件,400行代碼。如果有任何疑問,可以直接翻看源代碼。
tesserocr
tesserocr8也是一個TesseractOCR的封裝庫。它的首次commit是2015年。
這個庫相對于pytesseract的優(yōu)勢在于9,這個庫是使用Cython來直接調用Tesseract的C++ API。使用它和threading模塊來處理圖片,可以釋放GIL,達到正常的并發(fā)執(zhí)行。
2.Github: tesseract OCR engine
3.Tesseract作者 Ray Smith,美國計算機科學家,計算機圖形學的先驅. 他的中文名字叫做匠白光. ↩
9.Hacknews: 關于pytesseract, tesserocr的區(qū)別
總結
以上所述是小編給大家介紹的如何使用Python進行OCR識別圖片中的文字,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
使用Filter過濾python中的日志輸出的實現(xiàn)方法
這篇文章主要介紹了使用Filter過濾python中的日志輸出,本文給大家分享幾種方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07解決pycharm 遠程調試 上傳 helpers 卡住的問題
今天小編就為大家分享一篇解決pycharm 遠程調試 上傳 helpers 卡住的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06pydev debugger: process 10341 is co
這篇文章主要介紹了pydev debugger: process 10341 is connecting無法debu的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04python+selenium打印當前頁面的titl和url方法
今天小編就為大家分享一篇python+selenium打印當前頁面的titl和url方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Pytorch訓練模型得到輸出后計算F1-Score 和AUC的操作
這篇文章主要介紹了Pytorch訓練模型得到輸出后計算F1-Score 和AUC的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python字符串通過''+''和join函數(shù)拼接新字符串的性能測試比較
今天小編就為大家分享一篇關于Python字符串通過'+'和join函數(shù)拼接新字符串的性能測試比較,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03python網絡編程調用recv函數(shù)完整接收數(shù)據(jù)的三種方法
本文主要介紹了python網絡編程調用recv函數(shù)完整接收數(shù)據(jù)的三種方法。具有很好的參考價值,下面跟著小編一起來看下吧2017-03-03