怎么看python环境变量配置是否好了验证图片_python 的 tesserocr 模块安装与获取图片验证码...
OCR,即Optical Character Recognition,光學字符識別,是指通過掃描字符,然后通過其形狀將其翻譯成電子文本的過程。對于圖形驗證碼來說,它們都是一些不規則的字符,這些字符確實是由字符稍加扭曲變換得到的內容。
進入下載頁面,可以看到有各種.exe文件的下載列表,這里可以選擇下載3.0版本。
其中文件名中帶有dev的為開發版本,不帶dev的為穩定版本,可以選擇下載不帶dev的版本,例如可以選擇下載tesseract-ocr-setup-3.05.02.exe。
下載完成后雙擊,此時會出現如下圖所示的頁面。
此時可以勾選Additional language data(download)選項來安裝OCR識別支持的語言包,這樣OCR便可以識別多國語言。然后一路點擊Next按鈕即可。
接下來,為了在python代碼中使用tesseract功能,使用pip安裝pytesseract:
pip install pytesseract
2、配置環境變量
為了在全局使用方便,比如安裝路徑為D:\Program Files (x86)\Tesseract-OCR,將該路徑添加到環境變量的path中
配置完成后在命令行輸入tesseract -v,如果出現如下圖所示,說明環境變量配置成功
3、驗證安裝
接下來,我們可以使用tesseract和pytesseract來分別進行測試。
我們以如下圖所示的圖片為樣例進行測試。
首先用命令行進行測試,將圖片下載到D盤chromeDownload文件夾,保存為image.png,然后在該文件夾中打開命令行,用tesseract命令測試:
tesseract image.png result
運行結果如下:
D:\chromeDownload>tesseract image.png result
Tesseract Open Source OCR Engine v3.05.02 with Leptonica
這里我們調用了tesseract命令,其中第一個參數為圖片名稱,第二個參數result?為結果保存的目標文件名稱。
運行結果便是圖片的識別結果:Python3WebSpider。可以在chromeDownload文件夾中看到result.txt,這時已經成功將圖片文字轉為電子文本了。
然后還可以利用Python代碼來測試,這里就需要借助于pytesseract庫了,測試代碼如下:
from PIL importImageimportpytesseract#獲取簡單的圖片,獲取image.png
text = pytesseract.image_to_string(Image.open('image.png'))print(text)
我們首先利用Image讀取了圖片文件,然后調用了pytesseract的image_to_string()方法,再將其識別結果輸出。
運行結果如下:
Python3WebSpider
如果成功輸出結果,則證明tesseract和pytesseract都已經安裝成功。
4、使用時遇到的坑
在使用tesseract命令行進行測試時,會議開始報以下的錯誤
Error opening data file \Program Files (x86)\Tesseract-OCR\tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variableis set to the parent directory of your "tessdata"directory.
Failed loading language'eng'Tesseract couldn't load any languages!
Could not initialize tesseract.
報錯是意思是缺少環境變量TESSDATA_PREFIX,導致無法加載任何語言,就不能初始化tesseract。
解決的方法也很簡單,在環境變量中添加TESSDATA_PREFIX,如下圖
注意:變量值中的路徑為“D:/Program Files (x86)/Tesseract-OCR”,使用正斜杠“/”。windows中復制過來的路徑默認是反斜杠“\”
配置完成后,重新打開命令行,即可正常使用。
第二個坑是使用pytesseract時,出現以下錯誤
Traceback (most recent call last):
File"D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 170, inrun_tesseract
proc= subprocess.Popen(cmd_args, **subprocess_args())
File"D:\Python36\lib\subprocess.py", line 709, in __init__restore_signals, start_new_session)
File"D:\Python36\lib\subprocess.py", line 997, in_execute_child
startupinfo)
FileNotFoundError: [WinError2] 系統找不到指定的文件。
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File"D:/python/20180911.py", line 4, in text= pytesseract.image_to_string(Image.open(r'D:\chromeDownload\image.png'))
File"D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 294, inimage_to_stringreturn run_and_get_output(*args)
File"D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 202, inrun_and_get_output
run_tesseract(**kwargs)
File"D:\Python36\lib\site-packages\pytesseract\pytesseract.py", line 172, inrun_tesseractraiseTesseractNotFoundError()
pytesseract.pytesseract.TesseractNotFoundError: tesseractis not installed or it's not in your path
這就很坑,添加了全局變量,還是提示tesseract沒有安裝或者不在PATH中。
百度了一下,解決方案如下。
pytesseract安裝后,在python的Lib目錄下site-packges下會生成一個pytesseract文件夾,文件夾中找到pytesseract.py,路徑為:D:\Python36\Lib\site-packages\pytesseract,使用notepad之類軟件打開pytesseract.py,找到如下兩行:
tesseract_cmd = 'tesseract'
將tesseract_cmd = 'tesseract'修改為:tesseract_cmd = 'D:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
表示tesseract_cmd配置的是你安裝tesseract的絕對路徑,這樣就能找到tesseract了。修改后保存,再去運行python代碼,就可以成功了。
總結
以上是生活随笔為你收集整理的怎么看python环境变量配置是否好了验证图片_python 的 tesserocr 模块安装与获取图片验证码...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kmeans实现聚类及聚类效果指标 k值
- 下一篇: 排序算法之直接选择排序