当前位置: 首页 > 面试题库 >

Linux中的Python OCR模块?

彭修筠
2023-03-14
问题内容

我想在linux中找到一个易于使用的OCR python模块,我发现pytesser
http://code.google.com/p/pytesser/,但是它包含一个.exe可执行文件。

我尝试过更改代码以使用wine,它确实有效,但是它太慢了,真的不是一个好主意。

有没有像它一样易于使用的Linux替代品?


问题答案:

您可以只包装tesseract一个函数:

import os
import tempfile
import subprocess

def ocr(path):
    temp = tempfile.NamedTemporaryFile(delete=False)

    process = subprocess.Popen(['tesseract', path, temp.name], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    process.communicate()

    with open(temp.name + '.txt', 'r') as handle:
        contents = handle.read()

    os.remove(temp.name + '.txt')
    os.remove(temp.name)

    return contents

如果您希望文档分割和更多高级功能,请尝试OCRopus。



 类似资料:
  • 问题内容: 我正在开发一个Web应用程序,该应用程序显然在iOS设备中存在问题。问题是我不拥有iOS设备,而是在Linux Ubuntu中进行开发。我正在寻找一种在Linux(尤其是浏览器)中仿真/模拟此OS的方法,但是还没有找到任何东西。 到目前为止,我发现的是iOS SDK的Simulator,但这是针对Mac的。还有一些Windows模拟器。有人做过吗? 问题答案: 我能想到的唯一解决方案是

  • 问题内容: 在不深入了解 为什么 的细节的情况下,我正在寻找一种干净的(尽可能)的方法来替换可加载模块中的内核函数和系统调用。我最初的想法是编写一些代码来覆盖某些功能,这些功能将采用原始功能(可能的话, 调用 该功能),然后添加一些自己的代码。关键是我编写的函数必须具有原始函数的名称,因此其他代码在尝试访问它时将改为访问我的函数。 通过将代码放入适当的函数中,我可以轻松地(相对地)直接在内核中执行

  • 我正在Linux Mint 16上使用python 2.7。我面临一个错误,如果我从程序启动器运行IDE(在Spyder和Pycharm上尝试过)(例如,从Alt F2的提示符或桌面上的图标快捷方式),模块不会加载,我会得到以下错误 但是,如果我从命令行运行程序,模块加载正确,程序运行正常。我只有一个安装每个IDE。这两个实例的sys.path输出如下: Pycharm从快捷方式运行的sys.pa

  • 问题内容: Clang有一个非常酷的扩展,名为block,将真正的lambda函数机制带给了C。与block相比,gcc的嵌套函数非常有限。但是,尝试编译一个琐碎的程序: 与,我得到了 似乎我应该使用,但是后来我得到了 有什么提示吗? 问题答案: 在Ubuntu Linux上: : 编译: 工作良好。

  • 首先,当我使用react native init project1创建应用程序时,我收到如下错误 无法从 windows 上的 assets index.android.bundle 加载脚本 后来我通过运行以下命令解决了这个问题 堆栈溢出链接 mkdirAndroid/应用/src/主/资产 react-native bundle --platform android --dev false -

  • 主要内容:initramfe虚拟文件系统GRUB 加载了内核之后,内核首先会再进行二次系统的自检,而不一定使用 BIOS 检测的硬件信息。这时内核终于开始替代 BIOS 接管 Linux 的启动过程了。 内核完成再次系统自检之后,开始采用动态的方式加载每个硬件的模块,这个动态模块大家可以想象成硬件的驱动(默认 Linux 硬件的驱动是不需要手工安装的,如果是重要的功能,则会直接编译到内核当中;如果是非重要的功能,比如硬件驱动会编译为模块