关于pytesserac文字识别遇到的困难
代码如下import pytesseract
from PIL import Image
import numpy as np
im = Image.open('下载.png')
result = pytesseract.image_to_string(im)
print(result)
print(np.array(im).shape)
print(im.mode)
im = im.convert('L')
threshold = 80
array = np.array(im)
array = np.where(array > threshold, 255, 0)
image = Image.fromarray(array.astype('uint8'))
result = pytesseract.image_to_string(image)
print(result)
运行后:
a 63F.
(38, 112, 4)
RGBA
为什么处理过的图片就无法识别出文本呢?
我用调试模式输出result = pytesseract.image_to_string(image)后显示pytesseract.pytesseract.TesseractError: (1, 'Error, cannot read input file C:\\pythonProject1: Permission denied Error during processing.')
百度也没找到答案,问了gpt了也没办法,想问问论坛的大佬有没有办法?万分感谢!
你遇到的问题可能是由于以下几个原因导致的:
1. 文件读取权限问题:根据错误提示,有可能是对图片文件的读取权限不足所导致的错误。请确保你正在运行代码的用户具有访问图像文件的权限。可以尝试使用绝对路径来指定图像文件的位置,并确保路径正确。
2. 图像预处理问题:在进行图像预处理时,你将图像转为灰度图,并进行了阈值处理。这些操作对于不同类型的图像和文本可能需要不同的参数调整。你可以尝试调整阈值值来查看是否能够正确提取文本。
3. Pytesseract配置问题:Pytesseract依赖于Tesseract OCR引擎,需要确保正确配置。请确认你已经正确安装了Tesseract OCR,并且Pytesseract能够找到Tesseract的安装路径。你可以尝试指定Tesseract的安装路径,例如:pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'。
如果以上方法仍然无法解决问题,可以尝试查看Pytesseract的官方文档、GitHub仓库或相关社区以获取更多帮助。你也可以在开发者论坛或者技术问答社区中提问,寻求专业开发者的帮助。
祝你好运!如果还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案 问题的原因是在将图像转换为灰度图像后,使用了阈值处理来二值化图像。然而,在二值化过程中,将所有大于阈值的像素值设置为255(白色),小于阈值的像素值设置为0(黑色)。这样处理后的图像可能会丢失一些细节信息,导致文字识别失败。
为了解决这个问题,你可以尝试以下几个方法:
1. 调整阈值:尝试使用不同的阈值来进行图像二值化处理。通过适当调整阈值,可以保留更多的细节信息,提高文字识别的准确性。
2. 图像预处理:在进行文字识别之前,可以尝试对图像进行预处理,例如去噪、平滑、增强对比度等操作。这些操作可以帮助提高文字的清晰度,从而提高文字识别的准确性。
3. 尝试其他文字识别库:除了pytesseract,还有其他一些文字识别库可供选择,例如百度OCR、阿里云OCR等。你可以尝试使用其他库来进行文字识别,看是否能够获得更好的识别结果。
希望以上方法能够帮助你解决问题! isdkz 发表于 2023-9-2 18:18
问题的原因是在将图像转换为灰度图像后,使用了阈值处理来二值化图像。然而,在二值化过程中,将所有大于阈 ...
感谢大佬,我去试了试,成功了.我本来用show查看过处理的照片,感觉没啥问题,却没想到他识别不出来。就离谱,刚刚多试了几个数字就成功了。
陶远航 发表于 2023-9-2 18:17
你遇到的问题可能是由于以下几个原因导致的:
1. 文件读取权限问题:根据错误提示,有可能是对图片文件 ...
哈哈哈,这是不是gpt的回答? 2872423252 发表于 2023-9-2 18:31
哈哈哈,这是不是gpt的回答?
哈哈哈被你发现了
页:
[1]