我试图将此图像列表转换为文本。图像相当小但非常易读(15x160,只有灰色文本和白色背景)我似乎无法通过pytesseract正确读取图像。我尝试用.resize()来增加大小,但它似乎没有做太多的事情。这是我的一些代码。我可以添加任何新的东西以增加我的机会?就像我说的那样,我很惊讶pytesseract在这里让我失望,与我看来它捕获的一些东西相比它很小但是超级可读。
for dImg in range(0, len(imgList)):
url = imgList[dImg]
local = "img" + str(dImg) + ".jpg"
urllib.request.urlretrieve(url, local)
imgOpen = Image.open(local)
imgOpen.resize((500,500))
imgToString = pytesseract.image_to_string(imgOpen)
newEmail.append(imgToString)
答案 0 :(得分:0)
设置页面分割模式(psm)可能会有所帮助。
要获得所有可用的psm,请在终端中输入imgToString = pytesseract.image_to_string(imgOpen, config = '--psm 7')
。
然后根据您的需要确定psm。假设您希望将图像视为单个文本行,在这种情况下,您的ImgToString将变为:
{{1}}
希望这会对你有所帮助。
答案 1 :(得分:0)
您可以在代码中执行几个预处理步骤。
1)使用from PIL import Image
并使用your_img.convert('L')
。您还可以检查其他几种设置。
2)一种高级方法:使用CNN。您可以使用几种预先训练的CNN。在这里,您可以找到一些更详细的信息:https://www.cs.princeton.edu/courses/archive/fall00/cs426/lectures/sampling/sampling.pdf
tifi