python3使用Pillow、tesseract-ocr與pytesseract模塊的圖片識別的方法
1.安裝Pillow
pip install Pillow
2.安裝tesseract-ocr
github地址: https://github.com/tesseract-ocr/tesseract
或本地下載地址:http://chabaoo.cn/softs/538925.html
windows:
The latest installer can be downloaded here: tesseract-ocr-setup-3.05.01.exe and tesseract-ocr-setup-4.00.00dev.exe (experimental).
ubuntu:
sudo apt-get install tesseract-ocr traineddata文件路徑: /usr/share/tesseract-ocr/tessdata/
3.安裝pytesseract
pip install pytesseract
如不能使用pip直接安裝可取搜索模塊文件直接安裝
遇到問題及解決:
1.FileNotFoundError: [WinError 2] 系統(tǒng)找不到指定的文件
解決辦法:
方法1[推薦]: 將tesseract.exe添加到環(huán)境變量PATH中,
例如: D:\Tesseract-OCR,默認路徑為C:\Program Files (x86)\Tesseract-OCR
注意: 為了使環(huán)境變量生效,需要關(guān)閉cmd窗口或是關(guān)閉pycharm等ide重新啟動
方法2: 修改pytesseract.py文件,指定tesseract.exe安裝路徑
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe‘
方法3: 在實際運行代碼中指定
pytesseract.pytesseract.tesseract_cmd = 'D:\\Tesseract-OCR\\tesseract.exe'
2.pytesseract.pytesseract.TesseractError: (1, 'Error opening data file \\Tesseract-OCR\\tessdata/eng.traineddata')
解決方法:
方法1[推薦]:
將tessdata目錄的上級目錄所在路徑(默認為tesseract-ocr安裝目錄)添加至TESSDATA_PREFIX環(huán)境變量中
例如: C:\Program Files (x86)\Tesseract-OCR
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
方法2: 在.py文件配置中指定tessdata-dir
tessdata_dir_config = '--tessdata-dir "D:\\Tesseract-OCR\\tessdata"' # tessdata_dir_config = '--tessdata-dir "'C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"' pytesseract.image_to_string(image, config=tessdata_dir_config)
trainedata下載地址: the latest from github.com
示例:
# -*-coding:utf-8-*- from PIL import Image import sys import os import pytesseract from selenium import webdriver sys.path.append('C:\Python27\Lib\site-packages\pytesser') import pytesser url='http://192.168.24.189/system/code?0.6824490785056669' driver = webdriver.Firefox() driver.maximize_window() #將瀏覽器最大化 driver.get(url) imgelement = driver.find_element_by_id('codeImg') #定位驗證碼 location = imgelement.location #獲取驗證碼x,y軸坐標 size=imgelement.size #獲取驗證碼的長寬 rangle=(int(location['x']),int(location['y']),int(location['x']+size['width']),int(location['y']+size['height'])) #寫成我們需要截取的位置坐標 name="code.jpg" driver.find_element_by_id("codeImg").click() driver.save_screenshot(name) #截取當前網(wǎng)頁,該網(wǎng)頁有我們需要的驗證碼 aa=Image.open(name) #打開截圖 frame4=aa.crop(rangle) #使用Image的crop函數(shù),從截圖中再次截取我們需要的區(qū)域 frame4.save(name) im = Image.open(name) #轉(zhuǎn)化到灰度圖 imgry = im.convert('L') #保存圖像 imgry.save('g'+name) #二值化,采用閾值分割法,threshold為分割點 threshold = 140 table = [] for j in range(256): if j < threshold: table.append(0) else: table.append(1) out = imgry.point(table, '1') out.save('b'+name) #識別 text = pytesseract.image_to_string(out) #識別對嗎 text = text.strip() text = text.upper(); print (text) text = pytesseract.image_to_string(Image.open('code.png'), lang="eng") print(text)
以上就是python3使用Pillow、tesseract-ocr與pytesseract模塊的圖片識別的方法的詳細內(nèi)容,更多關(guān)于python3 圖片識別的資料請關(guān)注腳本之家其它相關(guān)文章!
- Selenium+Tesseract-OCR智能識別驗證碼爬取網(wǎng)頁數(shù)據(jù)的實例
- Java使用Tesseract-Ocr識別數(shù)字
- Python識別快遞條形碼及Tesseract-OCR使用詳解
- Python3.6使用tesseract-ocr的正確方法
- Perl使用Tesseract-OCR實現(xiàn)驗證碼識別教程
- python利用 pytesseract快速識別提取圖片中的文字((圖片識別)
- 使用Python中的pytesseract模塊實現(xiàn)抓取圖片中文字
- opencv+tesseract實現(xiàn)驗證碼識別的示例
- C#使用Tesseract進行Ocr識別的方法實現(xiàn)
- tesseract-ocr使用以及訓練方法
相關(guān)文章
Ubuntu18.04安裝 PyCharm并使用 Anaconda 管理的Python環(huán)境
這篇文章主要介紹了Ubuntu18.04安裝 PyCharm并使用 Anaconda 管理的Python環(huán)境的教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04python 使用cycle構(gòu)造無限循環(huán)迭代器
這篇文章主要介紹了python 使用cycle構(gòu)造無限循環(huán)迭代器的方法,幫助大家更好的理解和學習python,感興趣的朋友可以了解下2020-12-12python3 numpy中數(shù)組相乘np.dot(a,b)運算的規(guī)則說明
這篇文章主要介紹了python3 numpy中數(shù)組相乘np.dot(a,b)運算的規(guī)則說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03