En este artículo se describe el uso python3 almohada, una identificación con foto de métodos tesseract-ocr y módulos pytesseract, el código de muestra de papel se describe en gran detalle, tiene un cierto valor de referencia de aprendizaje para todos nosotros para estudiar o trabajar, necesitamos amigos a continuación con las pequeñas series juntos para aprender de ella
1. instalar almohada
pip install Pillow
2. Instalación tesseract-ocr
github Dirección: https://github.com/tesseract-ocr/tesseract
O la dirección local de descarga: https: //www.jb51.net/softs/538925.html
ventanas:
El último instalador se puede descargar aquí: tesseract-ocr-setup-3.05.01.exe y tesseract-ocr-setup-4.00.00dev.exe (experimental).
ubuntu:
sudo apt-get install tesseract-ocr
traineddata文件路径: /usr/share/tesseract-ocr/tessdata/
3. Instalar pytesseract
pip install pytesseract
A medida que la instalación no se puede utilizar directamente el módulo de pepita de búsqueda de archivos montado preferentemente de forma directa
Problemas encontrados y soluciones;
1.FileNotFoundError: [winError 2] sistema no puede encontrar el archivo especificado
solución:
Método 1 [Recomendado]: Añadir tesseract.exe a la variable de entorno PATH,
Por ejemplo: D: \ Tesseract OCR, la ruta predeterminada es C: \ Archivos de programa (x86) \ Tesseract OCR
Nota: Con el fin de hacer que las variables de entorno para surtir efecto y necesidades de la ventana cmd cerrar o cerca PyCharm y otra reinicio ide
Método 2: Modificar el archivo pytesseract.py, especifica la ruta de instalación 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‘
Método 3: En código especifica la operación real
pytesseract.pytesseract.tesseract_cmd = 'D:\\Tesseract-OCR\\tesseract.exe'
2.pytesseract.pytesseract.TesseractError: (1, 'archivo de datos Error al abrir \ Tesseract OCR-\ tessdata / eng.traineddata')
solución:
Método 1 [Recomendado]:
La ruta del directorio tessdata directorio principal donde se añadió (el directorio de instalación por defecto para el tesseract-ocr) a la variable de entorno TESSDATA_PREFIX
Por ejemplo: C: \ Archivos de programa (x86) \ Tesseract OCR
Por favor asegúrese de que la variable de entorno TESSDATA_PREFIX se establece en el directorio padre del directorio “tessdata”.
Método 2: tessdata-dir especifica en el archivo de configuración .py
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)
Ejemplo:
# -*-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'), lang="eng")
print(text)
Por último, se recomienda una muy amplia recolección de recursos de aprendizaje pitón, [haga clic para entrar] , aquí están mi colección antes de la experiencia, notas de estudio el aprendizaje, hay una posibilidad de experiencia en los negocios, y se calmó a cero sobre la base de información para combatir proyecto , podemos en la parte inferior, dejar un mensaje, no sé a presentar, vamos a estudiar juntos el progreso