你如何在烧瓶应用程序中使用 pytesseract

How do you use pytesseract in a flask app

我想构建一个允许用户上传带有文本的图像的 Flask 应用程序。然后我想让 pytesseract 提取文本并 return 它。

我做了一些研究,发现了这篇文章: https://stackabuse.com/pytesseract-simple-python-optical-character-recognition/#disqus_thread

它很好地解释了我想做什么。我唯一不明白的是我应该在哪里保存定义了 ocr_core 函数的 OCR 脚本。因为在文章中他后面可以导入函数。

该文件应命名为 ocr_core.py 并保存在与 app.py.

相同的目录中

考虑 ocr_core.py:

try:
    from PIL import Image
except ImportError:
    import Image
import pytesseract

def ocr_core(filename):
    """
    This function will handle the core OCR processing of images.
    """
    text = pytesseract.image_to_string(Image.open(filename))  # We'll use Pillow's Image class to open the image and pytesseract to detect the string in the image
    return text

app.py 中,行 from ocr_core import ocr_core 从模块 ocr_core.

导入函数 ocr_core

换句话说:from some_module import some_func 将从文件 some_module.py.

中的 some_module 模块导入 some_func 函数

还有教程的地方,接近ocr_core.py的结尾:

print(ocr_core('images/ocr_example_1.png'))

从技术上讲,该行将在 app.py 中导入 运行 的位置处执行。它看起来像是用于测试功能的一行。通常这应该在一个块中:

if __name__ == '__main__':
    print(ocr_core('images/ocr_example_1.png'))

这意味着它只会在您 运行 使用 python 解释器 python ocr_core.py 时执行 - 而不是在某个地方导入该模块时。根据教程,当您启动 Flask 服务器时,打印行会 运行,这可能是不可取的。