python3使用Pillow、tesseract-ocr與pytesseract模組的圖片識別的方法
1.安裝Pillow
pip install Pillow
2.安裝tesseract-ocr
github下載
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] 系統找不到指定的檔案
解決辦法:
方法1[推薦]: 將tesseract.exe新增到環境變數PATH中,
例如: D:\Tesseract-OCR,預設路徑為C:\Program Files (x86)\Tesseract-OCR
注意: 為了使環境變數生效,需要關閉cmd視窗或是關閉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環境變數中
例如: 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)
示例: 鄭州哪個醫院做人流好
# -*-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) #擷取當前網頁,該網頁有我們需要的驗證碼
aa=Image.open(name) #開啟截圖
frame4=aa.crop(rangle) #使用Image的crop函式,從截圖中再次擷取我們需要的區域
frame4.save(name)
im = Image.open(name)
#轉化到灰度圖
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'),)
print(text)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2680038/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 求助!我使用pytesseract和Pillow識別圖片時一直是空為什麼?
- python使用pillow和opencv生成圖片縮圖PythonOpenCV
- 分享:識別圖片文字方法
- windows 安裝 Pillow 模組Windows
- 實現圖片文字識別的方法有哪些
- Python3 pickle模組的使用詳解Python
- Tesseract-OCR如何得到更準確的中文識別
- Python3呼叫百度OCR圖片文字識別APIPythonAPI
- opencv圖片處理與OCR識別OpenCV
- 基於PyTesseract與PyQt5 的中文OCR識別應用程式設計QT程式設計
- 使用Tesseract進行圖片文字識別
- 人人都有可能需要的圖片識別方法,還可以翻譯
- Tesseract 圖片識別
- 圖片文字識別工具怎樣進行批次識別圖片?
- BeautifulSoup模組的使用方法
- 手寫的文字圖片怎樣使用OCR軟體識別?
- paddleocr圖片文字識別
- Nginx的HTTP模組與Stream模組:區別與應用場景NginxHTTP
- 從圖片提取文字的終極解決方法 ——【通用文字識別 API】API
- Java如何使用Tessdata做OCR圖片文字識別Java
- 如何免費識別圖片文字?圖片文字識別軟體怎麼用
- python3中的re模組簡單介紹及使用Python
- [ARKit]7-ARKit1.5的圖片識別功能
- 爬蟲敏感圖片的識別與過濾,瞭解一下?爬蟲
- Tesseract OCR 圖片文字識別
- 【326】PIL 截圖及圖片識別
- 百度人臉識別模組使用分享
- 為什麼python中使用模組無法識別Python
- BOSHIDA DC電源模組與其他電源模組的區別與優勢
- [雪峰磁針石部落格]tesseractOCR識別工具及pytesseract
- Python3 安裝第三方模組的二種方法Python
- python3 shutil模組Python
- PDF 轉換圖片然後識別圖片內容
- 如何將圖片識別成文字?
- 手動輸入圖片識別
- React 實現圖片識別AppReactAPP
- 圖片裁剪-文字識別-文字新增
- 圖片識別文字具體操作