10几行代码,用python打造实时截图识别OCR

你必定用过那种“OCR神器”,能够把图片中的文字提取出来,极大的提升工做效率。html

python


 

今天,咱们就来作一款实时截图识别的小工具。顾名思义,运行程序时,能够实时的把你截出来的图片中的文字识别出来。app

 

下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。工具

 

效果预览url

 

 

 

源码解析spa

 

1)等待用户截图code

 

此处须要借助贴图神器(Snipaste)htm

其中“f1”是截图的快捷键,“ctrl+c”是把截图保存到剪贴板的快捷键。blog

 

若是使用qq截图的话,须要把快捷键改成对应的“ctrl+alt+c”和“enter”接口

 

顺便安利一波Snipaste,

必备效率神器

 

 

import keyboard

# 利用截图软件(Snipaste)截图到剪贴板
# 输入键盘的触发事件
keyboard.wait(hotkey="f1")  
keyboard.wait(hotkey="ctrl+c")
time.sleep(0.1)

 

上面这段代码执行以后,如今已经有一张图片等待在剪贴板里了。

 

2)保存截图

 

利用PIL模块的ImageGrab,能够把剪贴板里的那张图片,保存到当前的目录下,并命名为“screen.png”

 

 

from PIL import ImageGrab

# 把图片从剪切板保存到当前路径
image = ImageGrab.grabclipboard()  
image.save("screen.png")

 

3)识别截图中的文本

 

法一

pytesseract模块

 

优势:免费,易用

缺点:识别效果很通常,准确率不高

 

使用方法介绍:

 

1)pip install pytesseract

 

2)安装 tesseract-ocr.exe 配置环境变量

 

3)修改pytesseract.py文件,将tesseract_cmd指向Tesseract-OCR的tesseract.exe的绝对路径。

参考文章

见评论第一条

 

 

import pytesseract
from PIL import Image

# 法一:利用pytesseract模块
# 参数一:图片 
# 参数二:简体中文
text = pytesseract.image_to_string(Image.open("screen.png"), lang='chi_sim')
print(text)

 

来看看效果:

 

 

low的不行

果真,要想精度高,还得用百度API

 

法二

百度API接口

 

AI开放平台文档中心

https://ai.baidu.com/ai-doc

 

 

查看python语言的SDK文档

 

 

点击右上角(控制台),登陆本身的百度帐号,建立“文字识别”的应用

 

 

 

import pytesseract
from aip import AipOcr
from PIL import ImageGrab

# 法二:利用百度API
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

# 读取图片
with open("screen.png", 'rb') as f:
    image = f.read()

    # 调用百度API通用文字识别(高精度版),提取图片中的内容
    text = client.basicAccurate(image)
    result = text["words_result"]
    for i in result:
        print(i["words"])

 

结果

如文章首图:

 

 

我是总结

 

1)等待用户截图

2)保存截图到当前目录

3)识别截图中的文本

 

其中识别截图文本,有两种方法:

 

1)利用 pytesseract 模块

2)利用百度API接口

你必定用过那种“OCR神器”,能够把图片中的文字提取出来,极大的提升工做效率。

 

今天,咱们就来作一款实时截图识别的小工具。顾名思义,运行程序时,能够实时的把你截出来的图片中的文字识别出来。

 

下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。

 

效果预览

 

 


源码解析
1)等待用户截图
此处须要借助贴图神器(Snipaste)其中“f1”是截图的快捷键,“ctrl+c”是把截图保存到剪贴板的快捷键。
若是使用qq截图的话,须要把快捷键改成对应的“ctrl+alt+c”和“enter”

顺便安利一波Snipaste,

必备效率神器

 

import keyboard

# 利用截图软件(Snipaste)截图到剪贴板
# 输入键盘的触发事件
keyboard.wait(hotkey="f1")  
keyboard.wait(hotkey="ctrl+c")
time.sleep(0.1)


上面这段代码执行以后,如今已经有一张图片等待在剪贴板里了。

2)保存截图

利用PIL模块的ImageGrab,能够把剪贴板里的那张图片,保存到当前的目录下,并命名为“screen.png”

from PIL import ImageGrab

# 把图片从剪切板保存到当前路径
image = ImageGrab.grabclipboard()  
image.save("screen.png")


3)识别截图中的文本
法一pytesseract模块
优势:免费,易用缺点:识别效果很通常,准确率不高

使用方法介绍:

1)pip install pytesseract
2)安装 tesseract-ocr.exe 配置环境变量
3)修改pytesseract.py文件,将tesseract_cmd指向Tesseract-OCR的tesseract.exe的绝对路径。

参考文章

见评论第一条

 

import pytesseract
from PIL import Image

# 法一:利用pytesseract模块
# 参数一:图片 
# 参数二:简体中文
text = pytesseract.image_to_string(Image.open("screen.png"), lang='chi_sim')
print(text)


来看看效果:

low的不行果真,要想精度高,还得用百度API
法二百度API接口

AI开放平台文档中心https://ai.baidu.com/ai-doc

查看python语言的SDK文档
 点击右上角(控制台),登陆本身的百度帐号,建立“文字识别”的应用

import pytesseract
from aip import AipOcr
from PIL import ImageGrab

# 法二:利用百度API
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

# 读取图片
with open("screen.png"'rb'as f:
    image = f.read()

    # 调用百度API通用文字识别(高精度版),提取图片中的内容
    text = client.basicAccurate(image)
    result = text["words_result"]
    for i in result:
        print(i["words"])


结果如文章首图:

我是总结

 

1)等待用户截图2保存截图到当前目录3)识别截图中的文本
其中识别截图文本,有两种方法:

1)利用 pytesseract 模块

2)利用百度API接口

相关文章
相关标签/搜索