第一次写还很不成熟,遇到的很多问题都写出来了。自我感觉还是比较全面的。希望能给大家带来帮助。谢谢。
效果展示:
一、截图
- qq截图工具使用ctrl+alt+c按键,并保存到剪贴板用ctrl+c按键
所以要用keyboard模块输入按键Keyboard模块的安装:Pycharm直接安装
2. 复制到剪贴板,并保存图片
用PIL函数需要安装ImageGrab模块
安装方法:
如果直接安装imagegrab通过pip install ImageGrab python3.7版本会直接报错,安装不了。并且百度寻找下载方法几乎没有可行的,并且很麻烦。
所以我找到可以通过安装Pillow模块来直接用from PIL import ImageGrab
安装Pillow模块方法与1.相同,搜索框改成Pillow即可
3. 代码完成后发现第一次运行出现错误,第二次运行出现的是上一次截取的图片,第三次是第二次的图片…(发现问题)
这是由于程序运行需要时间去保存到剪贴板图片,所以用time模块中的time.sleep([seconds]) 即可 注:time模块是python自带的模块
截图并保存代码:
#按键开始截图
if not keyboard.wait("ctrl+alt+a"):
if not keyboard.wait("ctrl+c"):
time.sleep(1)
# 复制到剪贴板
jpg=ImageGrab.grabclipboard()
#保存图片
jpg.save("tupian.png")
print(jpg) #图片截取保存成功
二、识字
1.识字直接用百度云里面的人工智能选项中的文字识别
打开技术文档找到python-SDK文档中的快速入门的新建AipOcr代码
复制到代码中并添加AipOcr模块。由于我们用的是百度云的aip所以要安装的aip应该是baidu-aip与一、1.安装相似搜索框改成baidu-aip即可。
2. 接下来打开接口说明,直接找到通用文字识别(高精度版)并复制代码写入我们的.py文件中。
3. 回到文字识别初始界面并点击立即使用----->创建新应用------->创建成功后即可看到我们的AppID、API-Key、Secret Key复制粘贴到我们的代码中即可使用。
文字传参识别代码:
def __init__(self):
""" 你的 APPID AK SK """
self.APP_ID = '你的 APPID'
self.API_KEY = '你的AK'
self.SECRET_KEY = '你的SK'
self.filePath = r'D:\python\test\tupian.png' #文件路径
self.client = AipOcr(self.APP_ID, self.API_KEY, self.SECRET_KEY
def shizi(self):
""" 读取图片 """
f=open(self.filePath,'rb')
jpg=f.read()
f.close()
Word = self.client.basicAccurate(jpg)
Text=''
for i in Word['words_result']:
Text+=i['words']+'\n'
print(Text)
三、全代码
#1.截图2.识字
import keyboard
from PIL import ImageGrab
import time
from aip import AipOcr
class jietushizi(object):
def __init__(self):
""" 你的 APPID AK SK """
self.APP_ID = '******'
self.API_KEY = '*********'
self.SECRET_KEY = '******************'
self.filePath = r'D:\python\test\tupian.png'
self.client = AipOcr(self.APP_ID, self.API_KEY, self.SECRET_KEY)
def jietu(self):
if not keyboard.wait("ctrl+alt+a"):
if not keyboard.wait("ctrl+c"):
time.sleep(1)
jpg=ImageGrab.grabclipboard()
jpg.save("tupian.png")
#print(jpg) 图片截取保存成功
def shizi(self):
""" 读取图片 """
f=open(self.filePath,'rb')
jpg=f.read()
f.close()
Word = self.client.basicAccurate(jpg)
Text=''
for i in Word['words_result']:
Text+=i['words']+'\n'
print(Text)
JTSZ=jietushizi()
JTSZ.jietu()
JTSZ.shizi()