我有以下代码,问题是,在某些图像上,返回值为空。图像的结构始终相同。它是白色背景上的纯黑色文本。清晰可读。 50%的结果是极好的,而其他结果则是空的。
我得到的唯一错误是:
wand / image.py:4623:CoderWarning:配置文件'icc':'RGB':RGB色彩空间不允许在PNG灰度PNG`filename.png'@ warning / png.c / MagickPNGWarningHandler / 1747 self.raise_exception()
但是,即使输出正常,每次也会引发此错误。
def retrievetext(self,docname):
r = BytesIO()
self.ftp.retrbinary("RETR /httpdocs/"+docname , r.write )
r.seek(0)
with wi(file=r, resolution = 400) as pdf:
pdfImage = pdf.convert('png')
imageBlobs = []
for img in pdfImage.sequence:
imgPage = wi(image = img)
imgPage.crop(left=200,top=600,width=1800,height=800)
imageBlobs.append(imgPage.make_blob('png'))
recognized_text = []
for imgBlob in imageBlobs:
im = Image.open(BytesIO(imgBlob))
im = im.convert('L')
text = pytesseract.image_to_string(im, lang = 'deu')
recognized_text.append(text)
return recognized_text
有人知道如何改善结果吗?
最诚挚的问候
答案 0 :(得分:1)
您的某些图像处于灰度模式。因此,您需要先将它们转换为RGBA格式,然后再发送到pytesseract:
img = Image.open('example2.png')
rgbimg = Image.new('RGBA', img.size)
rgbimg.paste(img)
text = pytesseract.image_to_string(rgbimg, lang='deu')
print(text)