如何增强Tesseract的OCR自动文本旋转功能? [英] How to enhance Tesseract automatic text rotation capabilities for OCR?
本文介绍了如何增强Tesseract的OCR自动文本旋转功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一组PIL图像,其中一些页面被正确旋转,而另一些页面的旋转接近180°。这意味着自动方向检测可能会失败,因为不是178°识别2°方向。
遗憾的是,Tesseract有时无法识别2°方向和178°之间的差异,因此在后一种情况下,输出完全错误。
简单的im.rotate(180)
可以自动修复这个问题,但该步骤是手动的,我希望tesseract自动了解文本是否颠倒。
看一下一些方法,它们需要Hough变换来理解文档中的流行方向。但是,在这种情况下,由于这些扫描文档的特殊方向,它们可能会失败。
有哪些自动循环选项可用,无需在第三方脚本上回放,但保留在Python库中?
推荐答案
我是StackOverflow的新手,因此对于任何形式的误导或错误答案,请原谅。如果有人还在寻找答案,pytesseract的image_to_osd函数会提供有关方向的信息。它只确定方向为0°、90°、180°或270°,也就是说,如果文本沿轴对齐,它将准确确定方向。但它也会输出这四个角度中的任何一个,即使方向不同也是如此。
因此,如果您使用的是像2°左右的微小角度差异,这应该可以解决问题。因此,我们首先对齐文本,然后使用函数。
以下是python中的代码:
while True:
osd_rotated_image = pytesseract.image_to_osd(image)
# using regex we search for the angle(in string format) of the text
angle_rotated_image = re.search('(?<=Rotate: )d+', osd_rotated_image).group(0)
if (angle_rotated_image == '0'):
image = image
# break the loop once we get the correctly deskewed image
break
elif (angle_rotated_image == '90'):
image = rotate(image,90,(255,255,255)) # rotate(image,angle,background_color)
continue
elif (angle_rotated_image == '180'):
image = rotate(image,180,(255,255,255))
continue
elif (angle_rotated_image == '270'):
image = rotate(image,90,(255,255,255))
continue
和对齐文本deskewpython库在我看来是最好的。
谢谢您。
这篇关于如何增强Tesseract的OCR自动文本旋转功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文