在python上将此验证码中的图像转换为文本

在python上将此验证码中的图像转换为文本,python,python-tesseract,Python,Python Tesseract,我一直在尝试使用pytesseract库将图像转换为文本。然而,我已经成功地拍摄了验证码并尝试翻译它。它不能很好地翻译文本,并使验证码失败,我不知道我做错了什么,我搜索了许多网站,我找不到具体的东西:s。我真的需要帮助 这是我在python上的代码: from PIL import Image, ImageFilter import pytesseract as pt from selenium import webdriver from selenium.webdriver.common.by

我一直在尝试使用pytesseract库将图像转换为文本。然而,我已经成功地拍摄了验证码并尝试翻译它。它不能很好地翻译文本,并使验证码失败,我不知道我做错了什么,我搜索了许多网站,我找不到具体的东西:s。我真的需要帮助

这是我在python上的代码:

from PIL import Image, ImageFilter
import pytesseract as pt
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

rif = 'J400607396'
browser = webdriver.Chrome('C:\\Users\\USUARIO\\Desktop\\chromedriver.exe')  -> driver on chrome
browser.get('http://contribuyente.seniat.gob.ve/BuscaRif/BuscaRif.jsp') -> page
# completar el rif y presionar el siguiente botón 
p_rif = browser.find_element_by_id('p_rif') -> input p rif
p_rif.send_keys(rif) 

# Imagen captcha

screenshot_name = "captcha.png"
browser.save_screenshot(screenshot_name)

img = Image.open("captcha.png")
area = (143, 205, 263, 235)
cropped_img = img.crop(area)
cropped_img.save('captcha.png')

img = Image.open("captcha.png")

captcha = pt.image_to_string(img,config='--psm 10 -c tessedit_char_whitelist=0123456789abcdefghijklmnopkrstuvwxyz') -> this is the problem
captcha = captcha.replace(" ", "").strip()
print(captcha)
codigo = browser.find_element_by_id('codigo')
codigo.send_keys(captcha)
nextButton = browser.find_element_by_name('busca') 
nextButton.click()
browser.close()
我需要转换成文字的图像,是所有

我将附上一个示例验证码,验证码总是随着每次更新而变化


如果可能的话,验证码的意义是什么?我需要解析验证码以获得更多关于rif sentcaptcha用于阻止机器人程序/脚本的信息-在本页上它似乎工作正常。解决这个问题应该不容易。您可以尝试学习机器学习中的一些模型,深度网络可以识别包含一些额外元素的文本。据我所知,tesseract还使用深度网络来识别文本,并且可以选择学习自己的tesseract模型,但这可能不是一项容易的任务。您还可以找到能够识别captcha文本的门户(但您可能需要付费)-其中一些门户使用Deep Network+Real People。另请参见Tesseract doc:我直接使用测试工具测试了您的示例图像。当我转换为灰度时,我会得到文本,在白色背景上转换为黑色文本,并使用
--psm 7
(对于一行中的文本)。我还测试了200%的大小(以及
--psm 7
),但它没有给出文本。