dbvisualizer中文乱码 解决办法_Keyboard Maestro | 使用 KM 实现免费中文 OCR 光学字符识别

f00afdc0bafdc38a6f78cc8bff407cd5.png
Keyboard Maestro(以下简称 KM)是 Mac 上一款非常强大的自动化软件,只要是操作上具有一定重复性的操作,理论上都可以通过在 KM 中多个动作(Action)的组合重现,可以大大提升工作效率,减少在重复性任务上花费时间。

相信你在使用 Mac 的时候也碰到过需要将一张图片中的中文提取的时候,不过不像 iOS 上丰富的 OCR App(如白描、WPS for iOS、讯飞输入法等等),Mac 并没有太多的选择,唯一的 iText 却有着每月 20 次识别的限制,20 次的限制足以让我失去下载的动力,好在通过 KM 便可以免费解决我对于中文 OCR 的需求。

什么是 OCR?
提取图片中文字背后的技术就是 OCR。OCR 全称为 Optical Character Recognition,中文翻译为光学字符识别。

直接上完整动作(Macro)截图,并接下来将对每一个动作做分步解析:

04b4c9910321d8853f08a8c2b82e98c9.png

分步解析:

0. TRIGGER

以快捷键触发整个动作。

1. TYPE A KEYSTROKE

使用截图快捷键调取截图功能捕捉要识别的“文字”,如暂未安装第三方截图 App,系统默认的截图快捷键如下:

  1. Command + Control + Shift + 4 截取部分屏幕保存至系统剪贴板
  2. Command + Control + Shift + 3 截取整个屏幕保存至系统剪贴板
  3. Command + Shift + 4 截取部分屏幕保存至桌面
  4. Command + Shift + 3 截取整个屏幕保存至桌面

2. PAUSE UNTIL

由于截图的快捷键动作一旦被执行,KM 将直接跳转至下一个动作,所以我们需要让 KM 等待我们执行完整个截图动作,等待的条件是剪贴板内容变为图片时继续。

这个动作有一个个小小的 bug。为了图方面,等待的条件简单地设置为了剪贴板内容变为图片时继续,但是如果剪贴板中内容原来就是图片那么这个 Macro 就无法正常执行,不过鉴于剪贴板中是图片的概率较小,所以该 Macro 在大多数情况下都可以正常使用。如果当前剪贴板真的是图片,那么就临时复制一段文字。

当然也欢迎各位提出优化的建议 XD

3. WRITE TO A FILE

将剪贴板的图片保存至本地文件夹。文件保存路径及名称自行设定即可,但是下个动作就会用到这个你设定的这个完整路径

4. EXECUTE A SHELL SCRIPT

运行一段代码。这个动作是整个 Macro 最关键的一部分,代码部分选用 Python,OCR 识别服务器选用百度 OCR。选择百度的理由很简单,因为免费的额度非常之高,高达每日 5 万次调用的免费额度,对比前面提到的 iText,知道 20 次/月的次数是多么少了吧 ‍♂️

具体代码如下:

#!/usr/local/bin/python3

# -*- coding: utf-8 -*-

# encoding=utf8

from aip import AipOcr
import sys,io
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')

""" 你的 APPID AK SK """
APP_ID = 'xxxxxxxxx'
API_KEY = 'xxxxxxxxx'
SECRET_KEY = 'xxxxxxxxx'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

def get_file_content(file):
    with open(file, 'rb') as fp:
        return fp.read()

def img_to_str(image_path):
    image = get_file_content(image_path)
    result = client.basicGeneral(image)
    if 'words_result' in result:
        return u'n'.join([w['words'] for w in result['words_result']])

print(img_to_str(image_path='填入第3步中的完整路径'))

注意:

  • 该代码基于 Python 3,请确保电脑上已经安装 Python 3,安装方式跟普通 pkg 安装软件没有区别,不难
  • Python 3 安装完毕之后,在终端 Terminal 中输入 pip3 install baidu-aip 安装百度 API
  • 代码中 App_IDAPI_KEY以及SECRET_KEY 可以使用自己注册的百度云账号生成的信息替换,不过鉴于本文的阅读量,我就直接将我的信息放上了,应该额度完全是够用的
  • 所以,作为读者的你需要做的就是将最后一行代码单引号内的内容替换为第三步的完整路径即可

如何注册百度云并生成秘钥

注册百度云,并获取关键的 App_IDAPI_KEY以及SECRET_KEY网络上已经有了现成的教程文章,请参考下方链接:

调用百度ocr的API,python简易版本​www.jianshu.com
80a1ac3b9f49af122e91b6a6b90b7bc8.png

5. NOTIFICATION

OCR 识别成功之后发送通知消息。

6. DELETE A FILE

将之前临时在磁盘上保存的截图文件给删去,所以此处的路径及文件名称需要与第 3 步动作中的内容一致。

尾巴

至此,我们已经可以非常方便且迅速地在 Mac 上实现中文 OCR 识别了,本文完整动作可以于下方链接下载:

http://qr18.cn/AOuvri


对于 Keyboard Maestro,你有什么需求或者想法吗?欢迎一起讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值