詳解Python安裝tesserocr遇到的各種問題及解決辦法
Tesseract的安裝及配置
在Python爬蟲過程中,難免遇到各種各樣的驗(yàn)證碼問題,最簡(jiǎn)單的就是這種驗(yàn)證碼了,那么在遇到驗(yàn)證碼的時(shí)候該怎么辦呢?我們就需要OCR技術(shù)了,OCR-即Optical Character Recognition光學(xué)字符識(shí)別,是指通過掃描字符,然后將其形狀翻譯成電子文本的過程。而tesserocr是Python的一個(gè)OCR識(shí)別庫,所以在安裝tesserocr之前,我們需要安裝tesseract這個(gè)東西
下載地址:https://digi.bib.uni-mannheim.de/tesseract/可以選擇下載不帶dev的穩(wěn)定版本,我下載的是3.05.01版本的,不過這個(gè)版本的可能比較早了,識(shí)別能力不是很厲害,讀者可以選擇下載最新版本的3.05.02,識(shí)別能力應(yīng)該會(huì)好很多。
下載完就是一路雙擊,在最后的Additional Language data(download)選上這個(gè)選項(xiàng),是OCR支持各種語言的包,然后繼續(xù)安裝,直到安裝成功。
我的安裝路徑為:G:\Program Files (x86)\Tesseract-OCR
安裝完成后就得需要配置環(huán)境變量,打開環(huán)境變量設(shè)置,在path中加入如下
的設(shè)置,這樣tesseract就安裝成功并配置完成了、
tesserocr庫的安裝
剛開始我直接在cmd下輸入 pip install tesserocr 很不幸報(bào)錯(cuò)了,報(bào)錯(cuò)類似于如下。。。因?yàn)橹拔业膱?bào)錯(cuò),沒有截圖。所以。。
就是類似于這種的截圖,這該怎么辦,難道要去下載visual C++嗎?我們有更好的解決方法,下載對(duì)應(yīng)的.whl文件
下載地址:https://github.com/simonflueckiger/tesserocr-windows_build/releases一定要下載對(duì)應(yīng)版本的
我的是3.5.1,所以我下載的是這個(gè)版本的。讀者可以自行選擇。
我的tesserocr-2.2.2-cp36-cp36m-win_amd64.whl文件下載在G盤根目錄下,然后在cmd里輸入 pip install G:\tesserocr-2.2.2-cp36-cp36m-win_amd64.whl 開始安裝whl文件,發(fā)現(xiàn)報(bào)錯(cuò)了。提示不能安裝whl文件。。原來是沒有安裝wheel。
然后我就去安裝了wheel 直接 pip install wheel即可。
安裝成功 在輸入pip install G:\tesserocr-2.2.2-cp36-cp36m-win_amd64.whl 發(fā)現(xiàn)開始安裝了。
哎心累啊,總算弄好了。但是,我在pycharm中調(diào)用tesserocr 這個(gè)庫,他又提示報(bào)錯(cuò)了,這是為什么呢?百度了一下最終解決。
原來需要在pycharm下的terrminal下輸入如下圖:
如果報(bào)錯(cuò)了還得有一步操作。
將Tesseract-OCR下的tessdata文件復(fù)制到你的Python安裝路徑的scripts下:
這樣
這下應(yīng)該就徹底安裝成功了。。
這下在pycharm里總算不會(huì)報(bào)錯(cuò)了,我們來試一下識(shí)別這兩張圖片的效果
代碼:
from PIL import Image import tesserocr imag=Image.open('test.jpg') print(tesserocr.image_to_text(imag)) imag1=Image.open('image.png') print(tesserocr.image_to_text(imag1))
輸出結(jié)果如下:
將762408識(shí)別成了162408 我也很無奈呀。。??赡苁且?yàn)榘姹咎肆税?/p>
以上就是我安裝tesserocr遇到的問題及解決辦法了。其實(shí)還可以裝pytesseract這個(gè)庫。
安裝pytesseract庫
安裝這個(gè)pytesseract庫可比tesserocr方便多了,根本不會(huì)報(bào)錯(cuò),直接pip install pytesseract 完事。。pycharm直接搜索庫
然后下載就完事,多省事。。。。
看一下識(shí)別效果,還是同樣的兩張圖片。
代碼:
import pytesseract from PIL import Image import tesserocr im=Image.open('test.jpg') print(pytesseract.image_to_string(im)) im1=Image.open('image.png') print(pytesseract.image_to_string(im1))
運(yùn)行結(jié)果:
運(yùn)行結(jié)果一樣的,所以我推薦大家使用pytesseract這個(gè)庫。
驗(yàn)證碼識(shí)別問題
我打開知乎登錄界面,下載了一張驗(yàn)證碼圖片:開始識(shí)別它。
代碼如下:
import pytesseract from PIL import Image import tesserocr #簡(jiǎn)單驗(yàn)證 特別垃圾 image=Image.open('3.jpg') result=tesserocr.image_to_text(image) print(result) #完全驗(yàn)證 也不咋地。。 image1=Image.open('3.jpg') image1=image1.convert('L') threshold=127 table=[] for i in range(256): if i <threshold: table.append(0) else: table.append(1) image2=image1.point(table,'1') image2.show() #二值化灰度處理圖片顯示 result=pytesseract.image_to_string(image2) print(result)
運(yùn)行結(jié)果:
都識(shí)別失敗了,,,
賊無語,但是灰度化和二值化后的圖片已經(jīng)很清晰了。。
我都能看出來是H83G了,你識(shí)別個(gè)H535是個(gè)什么鬼。。綜上,這個(gè)庫吧,可能效果也不是那么好。先湊活用吧。。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python3安裝OCR識(shí)別庫tesserocr過程圖解
- Python文字截圖識(shí)別OCR工具實(shí)例解析
- python3使用Pillow、tesseract-ocr與pytesseract模塊的圖片識(shí)別的方法
- Python3使用騰訊云文字識(shí)別(騰訊OCR)提取圖片中的文字內(nèi)容實(shí)例詳解
- Python圖像處理之圖片文字識(shí)別功能(OCR)
- 如何使用Python進(jìn)行OCR識(shí)別圖片中的文字
- 初探利用Python進(jìn)行圖文識(shí)別(OCR)
- 如何基于Python代碼實(shí)現(xiàn)高精度免費(fèi)OCR工具
相關(guān)文章
Django零基礎(chǔ)入門之路由path和re_path詳解
這篇文章主要介紹了Django零基礎(chǔ)入門之路由path和re_path,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09python實(shí)現(xiàn)帶錯(cuò)誤處理功能的遠(yuǎn)程文件讀取方法
這篇文章主要介紹了python實(shí)現(xiàn)帶錯(cuò)誤處理功能的遠(yuǎn)程文件讀取方法,涉及Python使用socket操作遠(yuǎn)程文件的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04詳解Python如何獲取視頻文件的大小和時(shí)長(zhǎng)
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)獲取視頻文件的大小和時(shí)長(zhǎng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-03-03關(guān)于python pyqt5安裝失敗問題的解決方法
這篇文章主要給大家介紹了關(guān)于python pyqt5安裝失敗問題的解決方法,文中給出了詳細(xì)的解決過程與解決方法,對(duì)同樣遇到這個(gè)問題的朋友們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08分享10個(gè)拿來即用的Python自動(dòng)化腳本
這篇文章主要來和大家分享10個(gè)拿來即用的Python自動(dòng)化腳本,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12Windows系統(tǒng)Python直接調(diào)用C++ DLL的方法
這篇文章主要介紹了Windows系統(tǒng)Python直接調(diào)用C++ DLL文件的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08進(jìn)行數(shù)據(jù)處理的6個(gè)?Python?代碼塊分享
這篇文章主要介紹了進(jìn)行數(shù)據(jù)處理6個(gè)Python代碼塊的分享,分享內(nèi)容有選取有空值的行、快速替換列值、對(duì)列進(jìn)行分區(qū)、將一列分為多列等內(nèi)容,需要的朋友可以參考一下2022-04-04關(guān)于Python自動(dòng)化操作Excel
這篇文章主要介紹了關(guān)于Python自動(dòng)化操作Excel, Python 是一種功能強(qiáng)大的編程語言,可以用于許多任務(wù),包括處理 Excel 文件,需要的朋友可以參考下2023-04-04