OCR屏幕取词插件「Goldendict 」

缘起

在Linux上,没找到跟Goldendict配套的OCR屏幕取词插件,那么自已动手造了个【凑了个】

使用效果展示

录了几次,没录好,可参照GoldenDict++OCR效果

OCR引擎

先来说说OCR引擎,最方便的是 tesseract, 各大发行版仓库中已自带

sudo apt install tesseract-ocr tesseract-ocr-eng

对纯英文而言,若是白底黑字,tesseract 还是可的,但当背景不是黑色时,tesseract 就看运气了


这里推荐 tr 本地OCR引擎 ,项目地址:GitHub - myhub/tr: Free Offline OCR 离线的中文文本检测+识别SDK

选此理由:

  • 核心代码全部采用C++开发,速度保证
  • 部署简单(主要是不需要装一大堆东西)
  • 识别准确率高。

对英文而言,经测试,各种场景下取词的识别准确率都非常高,中文常规取词已是非常棒的。

tr 安装

把仓库中的文件拌到本地后,直接运行里面的 demo.py

python demo.py

缺啥补啥,把这个 demo.py 正常跑起来就行了。

插件安装

先安装本插件的依赖:

sudo apt install zenity imagemagick scrot

插件分两个,一个是Python的,用于跟 tr 交流,一个是 shell ,用于整个功能的实现

GD_ocr.py (242 Bytes)

GD-ocr.tar.gz (702 Bytes)

请将如下两个文件,分别放在不同的地方:

  1. GD_ocr.py 放在 tr 项目内,即上面的 demo.py 的文件夹内
  2. GD-ocr.sh 放在 tr 文件夹的同一级目录内

完整文件位置如下:

.
├── GD-ocr.sh
└── tr
    ├── demo.py
    ├── GD_ocr.py
    ├── imgs
    │   ├── id_card.jpeg
    │   ├── line.png
    │   ├── name_card.jpg
    │   ├── output
    │   │   ├── id_card
    │   │   │   ├── 1.png
    │   │   │   └── 2.png
    │   │   └── name_card
    │   │       ├── 1.png
    │   │       └── 2.png
    │   └── web.png
    ├── LICENSE
    ├── MANIFEST.in
    ├── README.md
    ├── setup.py
    ├── test-multi-thread.py
    ├── test.py
    └── tr
        ├── char_table.txt
        ├── crnn.bin
        ├── ctpn.bin
        ├── __init__.py
        ├── libonnxruntime.so.1.3.0
        ├── libtr.so
        ├── __pycache__
        │   ├── __init__.cpython-39.pyc
        │   └── tr.cpython-39.pyc
        └── tr.py

如此完成,在系统内设置一个快捷键调用 ‘GD-ocr.sh’ 便可以愉快的OCR屏幕取词了

后记

人生苦短,劝君早离微软 「windows」

4 个赞

当初就是搞 power bi 入的微软,不会这些技术上的东西,处理大量的数据,只有依靠 power 系列啦,毕竟上手快啊(难度约等于excel),我从excel 100万行数据,到power bi 六七千万行数据,据说理论powerbi支持1亿行数据跑在个人笔记本上。

现在Linux的生态不太行,这些专业的处理工具,在windows下还是很香的