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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python使用pillow和opencv生成圖片縮圖PythonOpenCV
- 分享:識別圖片文字方法
- 實現圖片文字識別的方法有哪些
- opencv圖片處理與OCR識別OpenCV
- Python3呼叫百度OCR圖片文字識別APIPythonAPI
- Tesseract-OCR 字元識別---樣本訓練字元
- 人人都有可能需要的圖片識別方法,還可以翻譯
- 基於PyTesseract與PyQt5 的中文OCR識別應用程式設計QT程式設計
- 【嚴肅臉】使用caffe實現色情圖片的識別
- 圖片文字識別工具怎樣進行批次識別圖片?
- 手寫的文字圖片怎樣使用OCR軟體識別?
- windows 安裝 Pillow 模組Windows
- Java如何使用Tessdata做OCR圖片文字識別Java
- 從圖片提取文字的終極解決方法 ——【通用文字識別 API】API
- 如何免費識別圖片文字?圖片文字識別軟體怎麼用
- [ARKit]7-ARKit1.5的圖片識別功能
- 爬蟲敏感圖片的識別與過濾,瞭解一下?爬蟲
- PDF 轉換圖片然後識別圖片內容
- [雪峰磁針石部落格]tesseractOCR識別工具及pytesseract
- 圖片識別文字具體操作
- 圖片識別文字,分享給你!
- React 實現圖片識別AppReactAPP
- 如何將圖片識別成文字?
- paddleocr圖片文字識別
- 圖片裁剪-文字識別-文字新增
- Python3 pickle模組的使用詳解Python
- 截圖識別的具體操作方法
- 使用ML.NET模型生成器來完成圖片性別識別模型
- Java基於百度API的圖片文字識別JavaAPI
- 圖片識別軟體選哪個?
- 圖片文字識別怎麼實現
- 圖片的基本知識點
- Python爬蟲教程-29-驗證碼識別-Tesseract-OCRPython爬蟲
- 小豬的Python學習之旅 —— 13.文字識別庫pytesseract初體驗Python
- java指紋識別以及谷歌圖片識別技術原始碼Java谷歌原始碼
- Flutter 圖片的使用Flutter
- 儲存圖片文字的好幫手——雲脈文件識別
- 玩機小技巧:榮耀10識別圖片上的商品教程