|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下
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了也没办法,想问问论坛的大佬有没有办法?万分感谢!
问题的原因是在将图像转换为灰度图像后,使用了阈值处理来二值化图像。然而,在二值化过程中,将所有大于阈值的像素值设置为255(白色),小于阈值的像素值设置为0(黑色)。这样处理后的图像可能会丢失一些细节信息,导致文字识别失败。
为了解决这个问题,你可以尝试以下几个方法:
1. 调整阈值:尝试使用不同的阈值来进行图像二值化处理。通过适当调整阈值,可以保留更多的细节信息,提高文字识别的准确性。
2. 图像预处理:在进行文字识别之前,可以尝试对图像进行预处理,例如去噪、平滑、增强对比度等操作。这些操作可以帮助提高文字的清晰度,从而提高文字识别的准确性。
3. 尝试其他文字识别库:除了pytesseract,还有其他一些文字识别库可供选择,例如百度OCR、阿里云OCR等。你可以尝试使用其他库来进行文字识别,看是否能够获得更好的识别结果。
希望以上方法能够帮助你解决问题!
|
|