实时监控神器:用 Python 打造 macOS 屏幕区域 OCR 笔记生成器 (screen_ocr.py)
摘要:还在手动暂停视频截字幕?还在边看直播边手打笔记?本文介绍的 screen_ocr.py 脚本,利用 macOS 原生 screencapture 与 Vision API,结合 Python 的 imagehash 库,实现了一个“框选即监控、变化即记录”的实时 OCR 笔记神器。特别适合视频字幕提取、在线会议记录及动态网页监控。 1. 工具简介:你的屏幕“速记员” 在日常开发与学习中,我们经常面临以下场景: 看网课/直播:老师讲得太快,来不及记笔记。 提取视频字幕:视频没有提供字幕文件,只能盯着画面看。 监控动态界面:某个网页或软件界面不断刷新数据,需要手动记录。 screen_ocr.py 专为解决这些痛点而生。它运行后,你只需在屏幕上框选出感兴趣的文字区域,它就会在后台“盯着”这块区域。一旦检测到画面内容变化(如字幕变了、数据刷新了),它会立即调用 macOS 原生的 OCR 引擎识别文字,并按时间顺序写入 Markdown 文件。 2. 核心功能解析 2.1 原生框选:screencapture -i 传统 Python 截图工具(如 pyautogui)通常无法精确框选区域,或者依赖庞大的 GUI 库(如 tkinter、PyQt)。screen_ocr.py 直接调用了 macOS 内置的 screencapture -i 命令。 体验:按下运行键,鼠标变成十字准星,跟平时用 Cmd+Shift+4 一模一样。 优势:零依赖、原生体验、支持 Retina 屏幕高清截图。 2.2 智能去抖:感知哈希 (pHash) 比对 如果每秒钟都调用 OCR,不仅浪费资源,还会产生大量重复文本(比如画面没变,但识别结果可能因为噪点略有不同)。 脚本引入了 imagehash 库,计算图片的 pHash (感知哈希)。 原理:将图片缩放、灰度化、DCT 变换后生成一个 64 位的指纹。 判定:只有当新旧两帧图片的汉明距离(Hamming Distance)大于 5 时,才认为画面发生了实质变化。 效果:完美过滤静止画面,仅在文字更新时触发识别。 2.3 极速识别:macOS Native Vision API 通过 ocrmac 库封装,直接调用 macOS 系统级的 VNRecognizeTextRequest。 ...