为GoldenDict添加ocr识别查词(Linux系统)

本文主要记录在 Linux 系统中,为 GoldenDict 词典添加 OCR 屏幕取词查词功能

实现方法

  1. 利用深度截图进行屏幕采样
  2. 将待保存区域保存至剪切板
  3. 利用剪切板工具 xclip 处理剪切板数据
  4. 利用 tesseract 对图片进行文本识别
  5. 调用 GoldenDict 查询单词

具体实现细节

整个实现过程需要提前安装的项目有:(需要另外手动安装)

  1. 深度截图
  2. xclip(剪切板工具)
  3. tesseract(自带的英文识别不是太好,可以下载最新的英文识别训练文件,特殊识别可自行训练)
  4. GolenDict(查词软件,词典数据需要另外自行安装)

正确安装以上项目后,新建一个 shell 脚本文件(后缀名为 sh),文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
deepin-screenshot
xclip -selection clipboard -t image/png -o > "ocrdata.png" -t image/png
tesseract ocrdata.png ocrdata
word=$(sed -n '1p' ocrdata.txt)
if [ -n "$word" ]
then
goldendict ${word}
fi
if [ -e "ocrdata.png" ]
then
rm -f ocrdata.png
fi
if [ -e "ocrdata.txt" ]
then
rm -f ocrdata.txt
fi

随后在系统中添加快捷键,一般系统在设置中都有图形界面,给刚才的程序添加一个不冲突的就好了 > o<

程序运行示例如下(注意要截图时要保存到剪切板):

正在加载今日诗词....