Ocrdesktop
OCRdesktop 是一款有用的辅助工具,可通过 OCR 技术从屏幕上抓取内容作为文本。
它获取当前窗口或工作区的图像,对其进行预处理以获得更好的结果,并使用 tesseract 识别其中的文本。结果以启用插入符的文本区域、带有坐标和置信度的详细列表或剪贴板形式呈现。它还可以模拟在文本上单击。它由两个主要部分组成
- 主窗口:这是一个可插入符浏览的文本区域,包含识别的内容。有一个包含许多选项的菜单栏。使用
F10
聚焦菜单。 - 宏执行器:这是一个窗口,您可以在其中选择运行、卸载、加载或保存当前存储的宏和预点击。您也可以通过按下取消按钮来跳过运行宏。(请参阅#宏和预点击概念。)
安装
安装 ocrdesktop 软件包。确保您已安装 tesseract-data 组中与您的语言对应的软件包。
配置
在您的桌面环境中为命令 ocrdesktop
分配一个快捷方式。您还可以使用参数来扩展 OCRdesktop 的功能。对于英语以外的语言,您需要设置您的语言代码 ocrdesktop -l <languagecode>
。对于 <languagecode>,请使用 tesseract 语言代码
基本上,这应该在任何桌面环境中都有效。
在 Gnome 中,您可以通过Gnome 控制中心中的键盘窗口下的快捷方式选项卡执行此操作。
使用
只需按下分配的快捷方式。在没有参数的情况下,OCRdesktop 将仅识别当前窗口并将其呈现在启用插入符的文本区域中。
视图模式
OCRdesktop 提供不同的视图模式。您可以使用 Alt+v
在模式之间切换。
- 浏览模式:在可插入符导航的文本框中显示所有文本。该视图呈现当前识别内容的布局。您可以使用箭头键移动插入符。
- 详细模式:这基本上是一个列表,您可以在其中查看浏览模式下任何单词的详细信息。例如字体大小、字体颜色、屏幕上的位置 (X, Y)、OCR 过程的置信度和其他属性。字体大小或颜色之类的内容是近似值,因为它是由 OCR 图像计算得出的。某些字符在视觉上比其他字符小,因此存在一些差异。
OCR 语言
OCRdesktop 能够使用所有可用的 tesseract 语言,通过 -l <language code>
。如果未设置语言。OCRdesktop 将使用英语。
$ ocrdesktop -l deu
您还可以设置多种 OCR 语言
$ ocrdesktop -l deu+eng
OCR 选项
OCRdesktop 始终将当前屏幕截图放大 3 倍以获得更好的结果。除此之外,您可以在 OCRdesktop 尝试识别文本之前使用不同类型的转换。您可以使用所需的参数启动 OCRdesktop,或通过OCRdesktop菜单的OCR 选项子菜单在导航窗口中选择选项。选择选项后,按 F5
再次识别文本。这需要一些试验和错误才能获得更好的结果。
反转
如果原始图像中的颜色导致文本识别出现问题,则颜色反转可能会带来更好的结果
$ ocrdesktop -i
灰度
此处整体移除了颜色。我们得到一系列不同的灰度色调,这可以减少 tesseract 的混淆。
$ ocrdesktop -g
障碍黑白方法
这可能是最常获得最佳结果的方法。灰度始终处于活动状态。不同的灰度色调将在 0(白色)和 255(黑色)之间的定义值处断开。小于定义点的所有内容都将转换为黑色。等于或大于的灰度色调将转换为白色。这为 OCR 带来了清晰的图像。没有颜色,没有噪点,没有灰度,只有黑色和白色。使用这种类型的图像,tesseract 也可以读取非常明亮的彩色字体(因为它们被转换为黑色)。参数 -b
激活此功能。参数 -t <barriervalue>
设置障碍值。 <barriervalue> 是 0 到 255 之间的整数。如果未设置 -t
,则默认值为 200。
$ ocrdesktop -b -t 180
帮助
请参阅 ocrdesktop(1) 和 ocrdesktop -h
以获得一些帮助和可用参数。您可以随时混合使用不同的参数。
识别当前工作区
如果您不想将识别限制为当前窗口,请使用 -d
选项。
$ ocrdesktop -d
分析颜色
Tesseract 将 OCR 文本拆分为框。您可以这样理解,每个单词都是一个框,背景色是一种颜色,字体是另一种颜色。OCRdesktop 现在可以为您分析这些颜色。目前,颜色分析默认处于禁用状态。您可以通过添加 -O
标志作为参数来启用它。
$ ocrdesktop -O
在 OCRdesktop 启动后,您可以移动到您感兴趣的单词并切换到详细视图(请参阅(请参阅#视图模式))在详细视图中,现在有一列颜色,如下所示
白色:62 %,黑色:21 %,灰色:5%
这意味着 3 种最常用的颜色是白色(可能是背景)、黑色(可能是字体颜色)和灰色(一些阴影效果)。您可能会注意到这 3 种颜色的总和不是 100%。这是因为我们默认将结果限制为 3 种颜色。可能还有其他一些较小的效果或样式的东西。您可以使用 -x <value>
更改此默认限制。
$ ocrdesktop -O -x 2
将仅返回 2 种颜色,如下所示
白色:62 %,黑色:21 %
模拟鼠标事件
您可以通过交互菜单模拟在当前光标位置的单词上单击。
快捷键
- 单击左键 (
Ctrl+l
):通常用于选择/激活条目 - 双击左键 (
Ctrl+d
):通常用于在同一窗口中打开条目 - 单击右键 (
Ctrl+r
):打开鼠标下对象的上下文菜单 - 单击中键 (
Ctrl+m
):通常在新标签页中打开对象 - 将鼠标路由到对象上方 (
Ctrl+t
):用于鼠标悬停事件,例如工具提示
要立即执行鼠标操作,请将鼠标放在文本区域或列表条目(在列表视图中)中的单词上,然后按下相应的快捷键。
宏和预点击概念
预点击的概念起初不容易理解,但它解决了一个非常容易理解的问题。
在大多数桌面环境中,当菜单打开时,全局快捷键不起作用(例如,大多数程序顶部菜单栏中的文件菜单)。
预点击基本上是在 OCRdesktop 截取屏幕截图之前可以运行的宏。这允许您关闭所有菜单,并让 OCRdesktop 在识别窗口之前单击菜单。预点击宏非常易于使用。在交互菜单中,有一个复选框预点击 Ctrl+p
。设置此复选框并选择应在 OCRdesktop 下次启动之前执行的鼠标单击,这与执行正常的鼠标单击模拟非常相似(请参阅#模拟鼠标事件)。模拟鼠标单击后,不会发生任何事情。下次您运行 OCRdesktop 时,它会询问您要执行什么操作。您可以按运行,以便执行所有存储的单击。之后,OCRdesktop 截取屏幕截图以进行 OCR(带有打开的菜单)。如果您现在再次选中预点击选项,则第二个单击也将被存储(例如,用于打开子菜单)。您可以保存任意数量的鼠标操作。在宏窗口中选择卸载以擦除宏,使其丢失。如果您按下取消,则不会执行鼠标单击,但会打开主窗口。宏不会被删除,并且下次您启动 OCRDesktop 时会询问您是否要运行存储的单击。
~/.activeOCRMacro.ocrm
下。您可以使用 -m </path/to/macro/macroname.ocrm>
选项执行存储在硬盘驱动器上任何位置的现有宏文件。
$ ocrdesktop -m </path/to/macro/macroname.ocrm>
-n
选项结合使用。OCRdesktop 将只为您启动单击序列,而无需任何 GUI。模拟键盘事件
您还可以将键盘快捷键触发到预点击宏中。要进入快捷键录制模式,请按 Ctrl+k
或在交互菜单中选择发送按键菜单项。现在,您键入的每个按键都会附加到当前活动的预点击宏。按 F4
将退出录制模式。退出快捷键录制模式可能会有最多 2 秒的延迟。这是一个已知问题。
处理宏
您可以从宏菜单中保存、加载、卸载或运行当前宏。
- 保存 (
Ctrl+s
):将宏保存在文件系统中,以防您更频繁地需要它。 - 加载 (
Ctrl+o
):加载意味着下次 OCRdesktop 运行时将启动此宏 - 卸载 (
Ctrl+u
):从缓冲区中删除宏并阻止其运行。如果您从文件系统加载宏,则原始宏文件将不会被使用 - 运行 (
Ctrl+n
):关闭窗口并立即运行宏
复制到剪贴板
OCRdesktop 提供了将当前识别的内容发送到剪贴板的可能性。
通过指定 -c
选项可以轻松完成此操作。
$ ocrdesktop -c
这将打开主窗口并将内容发送到剪贴板。如果您不想打开主窗口,可以添加“无 GUI”选项 -n
。
$ ocrdesktop -c -n
$ ocrdesktop -cn
现在您已将识别的文本放在剪贴板中,并且不会出现窗口。
当 GUI 打开时,您也可以按 Ctrl+b
。
调试模式
您可以使用 -v
选项启动调试模式。
$ ocrdesktop -v >> /tmp/debug.out
调试输出将发送到标准输出。因此您必须对其进行管道传输。
/tmp/
中。