Windows 7 中的命令行 OCR

Windows 7 中的命令行 OCR

哪些命令行 OCR 实用程序可以在 Windows 7 64 位系统中运行?

答案1

我认为立方体是最好的(免费)基于命令行的 OCR 软件。遗憾的是,似乎没有可用的 Windows 7 64 位二进制文​​件,因此您必须自己编译它;以下是执行此操作的说明(取自Tesseract 常见问题解答页面):

  1. 下载 tesseract 2.04。解压。在本例中,我将其解压到 C:\projects\tesseract-2.04。Windows 7 仍然无法识别开箱即用的 .tar.gz。我建议获取一份 7-Zip。

  2. 下载所需的语言文件。我需要德语和英语。我将它们解压到 C:\projects\tesseract-2.04\tessdata 的 tessdata 子目录中。

  3. 安装 libtiff。在我的(64 位)系统上,建议的安装目录是 C:\Program Files (x86)\GnuWin32?。此目录下有一堆子目录,其中包含我们需要使用 tiff 支持编译 tesseract 的文件,即 include、bin 和 lib。

  4. 将 C:\Program Files (x86)\GnuWin32?\bin 添加到您的 PATH 环境变量中,以便输出 tesseract.exe 可以找到 libtiff dll。重新启动。

  5. 打开vc解决方案(tesseract.sln)

  6. 将解决方案配置更改为“发布”模式。请注意,如果您稍后更改回调试模式,则需要再次设置以下所有内容...

  7. 在解决方案资源管理器中,右键单击解决方案节点(解决方案“tesseract”),然后单击“属性”。更改为“配置属性”,然后从窗口顶部的下拉菜单中选择“发布”配置。导航至:工具 -> 选项 -> 项目和解决方案 -> VC++ 目录 在这里,我们将添加 libtiff 安装中子目录 lib 和 include 的完整路径,以便 VC 可以找到所需的头文件 (.h) 和静态库文件 (.lib)。在此示例中,它们是:$(ProgramFiles?)\GnuWin32?\include $(ProgramFiles?)\GnuWin32?\lib 因为我使用的是环境变量。但是,我可以将它们写为 C:\Program Files (x86)\GnuWin32?\include。将“显示目录”下拉菜单更改为“包含文件”。添加以下内容:$(ProgramFiles?)\GnuWin32?\include 现在将“显示目录”下拉菜单更改为“库文件”。添加以下内容:$(ProgramFiles?)\GnuWin32?\lib

  8. 现在打开 tesseract 项目(不是解决方案)的项目属性窗口。在解决方案资源管理器中右键单击 tesseract 项目,然后单击属性。将可怕的选项列表导航到配置属性 -> C/C++ -> 预处理器,然后将 HAVE_LIBTIFF 添加到预处理器定义列表中。这会导致代码中启用一堆 #includes。

  9. 您还想添加“附加依赖项”。转到项目属性的“附加依赖项”部分并添加 libtiff.lib。

  10. 构建解决方案。查看错误列表。如果您收到一堆 LNK2109 错误,则意味着链接器找不到 tesseract 引用的内容。您缺少对 libtiff 中某个路径的引用。如果您收到提及 mt.exe 的错误,则您可能遇到了 sdk 中的错误。只需尝试再次构建。请参阅 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=106634 了解更多信息。

如果/当解决方案成功构建时,您将在与 tesseract 解决方案文件相同的目录中拥有一个 tesseract.exe 文件。将多页压缩的 tiff 拖到这里并尝试运行 tesseract。例如,如果您的 tiff 称为 in.tif 并且您想要将文本输出到 out.txt,并且文档的语言是德语,那么您的命令行将如下所示:

tesseract.exe in.tif out -l deu tesseract 会将 .txt 附加到输出文件。如果您只是翻译英文文本,则可以省略 -l 选项,因为如果您不指定任何内容,tesseract 会假定“eng”。如果您的 tif 文件的文件扩展名为 .tiff,那么 tesseract 会这样搞:

C:\projects\tesseract-2.04>tesseract.exe in.tiff out -l deu Tesseract 开源 OCR 引擎 name_to_image_type:Error:无法识别的图像类型:in.tiff IMAGE::read_header:Error:无法读取此图像类型:in.tiff tesseract.exe:Error:读取文件失败:in.tiff

希望(手指交叉,呵呵)您现在在 C:\projects\tesseract-2.04 中有一个 OCR 的 out.txt 文件。

答案2

JOCR 是我所知道的唯一一款可以在 Windows 上运行且基于命令行的软件。查看其网页这里

答案3

tesseract 有一个适用于 Windows 7 的安装程序。我刚刚安装了它并让它对一张小图像进行 OCR。结果很糟糕,但我希望通过一些调整可以改善结果。

相关内容