Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Pyocr中从左向右更改文本方向_Python_Ocr_Tesseract - Fatal编程技术网

Python 在Pyocr中从左向右更改文本方向

Python 在Pyocr中从左向右更改文本方向,python,ocr,tesseract,Python,Ocr,Tesseract,我正在使用pyocr结合Pillow和OpenCV从PDF文档中提取文本。但是,PDF文档是表单,这意味着在某些情况下,表单中项目的标签位于文档的最左侧,项目的值位于文档的右侧。例如(为间距添加点,但在图像中不存在): 橙子价格:15.75美元 苹果价格:12.51美元 当我将图像转换为文本时,它将如下所示: 橙子价格:/n苹果价格/n$15.75/n$12.51 基本上,文本是从上到下再从左到右阅读,而不是从左到右再从上到下阅读 在我对这个问题的在线研究中,有很多答案强调了如何检测文本的方向,

我正在使用pyocr结合Pillow和OpenCV从PDF文档中提取文本。但是,PDF文档是表单,这意味着在某些情况下,表单中项目的标签位于文档的最左侧,项目的值位于文档的右侧。例如(为间距添加点,但在图像中不存在):

橙子价格:15.75美元

苹果价格:12.51美元

当我将图像转换为文本时,它将如下所示:

橙子价格:/n苹果价格/n$15.75/n$12.51

基本上,文本是从上到下再从左到右阅读,而不是从左到右再从上到下阅读

在我对这个问题的在线研究中,有很多答案强调了如何检测文本的方向,但我已经知道我希望我的文本在所有情况下都从左向右流动。所以,我的问题是,有没有办法改变pyocr中的默认设置,使它总是从左到右读取文本。我希望转换后的文本如下所示:

橙子价格:$15.75/n 苹果价格:$12.51/n

以下是我目前用于pyocr的代码:

def image_to_OCR(req_image_list,final_text):
tool = pyocr.get_available_tools()[0]
for img in req_image_list:
    txt = tool.image_to_string(
        PI.open(io.BytesIO(img)),
        lang='eng',
        builder=pyocr.builders.TextBuilder()
    )
    final_text.append(txt)
return(final_text)

tesseract
即使使用基于列的图像也可以进行OCR。因此无法指定方向。 您可以将图像旋转90,然后进行ocr

您可以使用
numpy
将图像转换为数组,然后根据空行分割图像,然后保存图像并进行OCR