如何通过在python中使用pytesseract和opencv-python来识别其他更大对象下的变形文本?

How to recognize deformed text under some other bigger object by using pytesseract and opencv-python in python?

我正在使用 pytesseract 来识别如下文本

td = pytesseract.image_to_data(img, output_type=Output.DICT)
tn_boxes = len(td['level'])
for o in range(0, tn_boxes):
    text = td['text'][o]
    print(text)

我只是用一个简单的逻辑 detect keyword 'Example no.' find it's end point keyword 'Sol.' and put a piece of image from keyword 'Example no.' to keyword 'Sol.' into index and then find next example and so on
来为 Examples 创建一个索引 但是当我尝试下面的图片时 然后它显示输出 SET THEORY ae . . 5 (6) Let A = {x: x isa negative odd integer} = {-1,-3,-5,-7,...等等
看看它是如何不识别第一行的 Sol. (a) Let A={x:x is a natural number..etc.
当我尝试使用以下没有水平线的图像时 它工作正常。

有什么方法可以配置 pytesseract 以识别上面有一行的文本?

已编辑:

有时当我们将一些图像放在文本上方或其他一些更大尺寸的文本时,pytesseract 无法检测到更大对象下方的文本。

是否有针对此类问题的任何解决方案,可能有一种方法可以配置检测最小尺寸或配置检测所有可能尺寸的文本,即使在一些较大的对象下也是如此?

例如 它显示输出 usually denoted by o(G). ors a a {= 7 Wave =e () oe that the set of ae | group usual ition of integers.
查看它如何不检测关键字 Example 1. 对于下图

但是当我尝试下图时 它显示输出 usually denoted by o(G). Example 1. (2) Prove that th . group under usual addition of integers, 现在正在检测关键字 Example 1.

阅读例如image processing to improve tesseract OCR accuracy and read the docs.

您可以尝试dewarping 图像。我用过这个仓库 dewarp-github
代码写在 python 的版本 2 中。如果您使用的是 python 的版本 3+,您可以使用以下代码将此代码转换为版本 3 2to3。它需要对我的案例进行一些修改,这些修改并不太复杂。