Mac实现截图OCR输出文字功能
1.为什么要这个功能
工作中会经常遇到需要识别一个图片中的文本内容,需要快速的OCR识别,从而提高工作效率;
2.如何实现
snipaste + pngpaste + tesseract
- snipaste 用于截图
- pngpaste 用于读取剪贴板内容
- tesseract 用于对输入的图片做OCR识别
3.安装流程与使用
安装 pngpaste 和 tesseract 需要预先安装brew,国内安装brew可以参考brew官网直接执行/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
需要代理,且不一定一次成功,如果失败的话,需要多执行几次;
安装完brew后,需要更新brew brew udpate --verbose
, 如果遇到fatal: Could not resolve HEAD to a revision
, 进入到出问题的目录(笔者是/opt/homebrew/Library/Taps/homebrew/homebrew-core
目录),手动拉取代码
git fetch --prune origin
git pull --rebase origin master
成功之后,还需要设置brew的仓库镜像,可参考清华大学镜像
export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
export HOMEBREW_PIP_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple"
之后就可以安装pngpaste 和 tesseract,创建别名alias pocr='pngpaste - | tesseract stdin stdout'
,然后就可以进行截图,之后输入pocr
解析图片内容了
4.使用效果
截图:
识别结果:
5.中文支持
默认安装的tesseract只支持英文识别,如果需要中文识别的,首先提前下载简体中文的训练数据,我是通过brew install tesseract-lang
安装的,可以看到/opt/homebrew/share/tessdata
目录多处很多数据文件,不仅仅是中文的。
添加完中文训练数据后,还需要在ocr识别命令上加上识别指定语言参数,tesseract -l eng+chi_sim
,改完后,我们的别名是这样子的alias pocr='pngpaste - | tesseract stdin stdout -l eng+chi_sim'
,可以看下效果。
中文输出有很多空格,可以通过添加参数 -c preserve_interword_spaces=1
解决, 最终的命令就是pngpaste - | tesseract stdin stdout -l eng+chi_sim -c preserve_interword_spaces=1
。
6.待改进
识别精度不高,经常出现1识别成I,0识别成O的情况,这个可能需要自己训练调优什么的,有兴趣可以研究下tesseract的GITHUB和官网的使用手册。
posted on 2023-02-10 18:20 mindSucker 阅读(391) 评论(0) 编辑 收藏 举报