惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
S
SegmentFault 最新的问题
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
I
InfoQ
U
Unit 42
博客园_首页
GbyAI
GbyAI
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
DataBreaches.Net
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 聂微东
T
Tailwind CSS Blog
量子位

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
印象笔记中的「搜索图片中文字」,在macOS中也可以实现了 - ...
2018-03-27 · via 少数派

OCR (Optical Character Recognition,光学字符识别)就是将图片中的文字识别出来,让你可以编辑,复制等,免去了自己手动输入的麻烦。印象笔记OneNoteDEVONthink Pro Office 等笔记类软件或服务都将其作为一大亮点功能,让用户可以搜索或复制图片中文字内容。

近日,GitHub 上有用户创造出一种 在 macOS 中「搜索图片中文字」的方法 。其效果是:某张截图或其它图片中含有文字,在经过处理后,可以由 Spotlight 或 Alfred 直接搜索图片中的文字,从而定位并打开图片。你也可以在右键菜单中打开图片文件的简介,复制识别的文字。

过程演示
过程演示

该方法是利用 Tesseract 实现的。Tesseract 是开源的 OCR 引擎,已有 33 年的历史,最早由惠普实验室开发,经过一翻波折后开源,现由 Google 赞助、开发、维护,支持 100 余种语言。相比目前流行的云识别,其识别质量稍显不足,但是基本满足一般的搜索需要。

需要安装的工具:

  1. Homebrew。如果不了解 Homebrew,可以先看下专题 Homebrew,Mac 应用管家
  2. Tesseract。安装命令:

     brew install tesseract
    
     # 添加中文语言识别数据包
     wget -O /usr/local/share/tessdata/chi_sim.traineddata https://raw.githubusercontent.com/tesseract-ocr/tessdata/3.04.00/chi_sim.traineddata
    

    注:brew install tesseract --with-all-languages 可以在安装 tesseract 的同时安装所有语言识别数据包(100余种)。

  3. ImageMagick。安装命令:brew install ImageMagick,这是为了对图片进行预处理,以改善识别效果。

GitHub 上的脚本经我改进后如下,这也是下文中所有方案的核心部分:

imgFile=$1

# 预处理并识别文字
# sed 是为了转义识别结果中的英文双引号,会引起错误
CONTENTS=$(/usr/local/bin/convert "$imgFile" -magnify -alpha remove - | /usr/local/bin/tesseract -c language_model_penalty_non_dict_word=0.8 stdin stdout -l eng+chi_sim  | sed "s/\"/\\\\\"/g" )

# 将识别结果设置为图片的注释
cmd1="set theComment to \"$CONTENTS\""
cmd2="tell application \"Finder\" to set comment of (POSIX file \"$imgFile\" as alias) to theComment"
/usr/bin/osascript -e "$cmd1" -e "$cmd2"

手动处理指定图片

下载 OCR Process.workflow.zip ,解压后将 OCR Process.workflow 放入~/Library/Services/中,在图片文件的右键菜单中,点击服务中的 OCR process 就会开始处理 —— 识别图片中文字,并添加为图片文件的注释。之后可通过 Spotlight 和 Alfred 搜索。

服务
服务

对指定文件夹中的图片自动处理:

实现手动方法后,我想更省事怎么办?那就对拖入指定文件夹中的图片自动处理。也就是说,假如有文件夹 A,经设置后,只要你将图片拖入该文件夹,就自动进行识别处理。
实现的途径有三种可选:macOS 自带功能,HazelKeyboard Maestro。这三种方法实现的效果是完全一样的,选择一种你喜欢或已购买的软件。

1. macOS 自带的文件夹操作设置(Folder Actions Setup)

下载 Image - OCR Process.workflow.zip ,解压后将 Image - OCR Process.workflow 放入 ~/Library/Workflows/Applications/Folder Actions/ 中。然后,在系统偏好设置 → 键盘 → 快捷键 → 服务中勾选文件夹操作设置

启用文件夹操作设置
启用文件夹操作设置

选中你想要设置的文件夹,右键菜单中选择服务 → 文件夹操作设置,然后在弹出的窗口中进行设置:

  1. 下面左图左上方,勾选两处以橙色下划线标注的选项。
  2. 点击左图下方的 ,打开如右图所示的菜单。
  3. 选择 OCR Process,点击附加。
  4. 关闭该窗口,设置完毕。

将一个含有文字的图片文件拖入该文件夹,稍等十来秒即可,试一试吧。

文件夹操作设置
文件夹操作设置

2. Hazel

下载 OCR Process.hazelrules后,双击导入,设置目标监控文件夹,勾选启用它。

Hazel
Hazel

3. Keyboard Maestro

下载 OCR Process.kmmacros 后,双击导入,修改文件夹路径为你需要的文件夹,然后点击右上方 以启用。

Keyboard Maestro
Keyboard Maestro

对附有特定标签的图片自动处理

上面实现了对拖入指定文件夹中的图片自动处理,但是我需要处理的图片不可能都在一个文件夹中,而且一个文件夹中的图片也不一定都需要处理。那么我们可以利用 macOS 自带的标记(Tag) 与 Hazel 软件实现:只要一个图片被加上了 toOCR 的标签,无论它在什么位置,都会自动被处理,并改为 OCRed 标签。

首先,建立智能文件夹:

  1. 在访达(Finder)中按照下面左图所示设置搜索条件。
  2. 点击左图中的存储,保存为智能文件夹。默认是保存到 ~/Library/Saved Searches 文件夹中,你可以自选位置。

这样,在任何时候打开该文件夹,都会看到目前所有的附有 toOCR 标记的图片。

智能文件夹
智能文件夹

然后,下载 OCR Process for toOCR.hazelrules后,双击导入,选择上面保存的智能文件夹,勾选启用它。

搜索

使用上面的方法,对图片文件处理后,就可以利用 Spotlight 和 Alfred 搜索——输入你印象中图片上的文字,即可找到该图片。具体的搜索方法和技巧,可以看我的前一篇文章 快捷添加注释,灵活使用搜索,帮你迅速找到软件和文件

附注

对一张图片进行文字识别,可能需要十几秒的时间。而且,时间会随着图片体积和其中文字数量的增长而增长,不建议一次性批量处理过多的图片。

这个方法的核心就是识别文字、添加为图片的注释。还可以用于解决其它问题,搜索只是一项,期待你将自己的用法留言写下来。

> 想用好命令行、成为 Mac 高手,欢迎访问专题 轻松玩转 Mac 命令 💻

> 下载 少数派 iOS 客户端、关注 少数派公众号,让智能设备更好用 ⚡️