最近在用NixOS(gnome环境)时,想要实现截图识别文字并直接粘贴的功能,查看资料之后找到以下解决方案。

安装以下软件包

xclip
tesseract
imagemagick
gnome.gnome-screenshot

编写shell脚本

ocr.sh,假设放在/home/fangn/.ocr/

#/bin/bash 

# 修改 {Username} 为你的用户名
OCR_PATH="/home/{Username}/.ocr/temp"

# 若文件夹不存在则创建
if [ ! -d "$OCR_PATH" ]; then
    mkdir -p "$OCR_PATH"
fi

# 截图
gnome-screenshot -a -f $OCR_PATH.png

# 图片处理来增强识别率
mogrify -modulate 100,0 -resize 400% $OCR_PATH.png 

# 使用 tesseract 识别英文和简体中文 eng+chi_sim
tesseract $OCR_PATH.png $OCR_PATH &> /dev/null -l eng+chi_sim

# 将识别结果复制到剪贴板
cat $OCR_PATH.txt | sed 's/ //g' | tr -d '\n' | xclip -selection clipboard
	
# 删除临时文件
rm $OCR_PATH.png $OCR_PATH.txt

exit

设置快捷键