python手机投屏截图,自动文字提取小项目
2019-08-17 本文已影响0人
Trade丿Life
相信大家都会遇到在手机做题的情况,这个时候遇到不会的题目我们肯定是要去百度的,几条不会的还好,敲一敲即可,可要是存在大量不会的题目咋办?那不是要敲题目敲到死。这个时候我这个小项目或许可以帮到你,快速截取手机的题目,提取出文字,你便可以直接百度寻找。灵感来源一位好友。
1.代码组成
运用PIL的截图程序
运用百度开源文字提取技术文档
百度的API可到百度智能云寻找<https://cloud.baidu.com
2.上代码
import time
from PIL import ImageGrab
import os
from aip import AipOcr
#这里是为了如果找不到png这个目录的情况自己建一个png目录
absPath = os.path.abspath('.')
#将所有python目录的文件输出
path = [x for x in os.listdir('.') if os.path.isdir(x)]
if 'png' in path:
#print('yes')
pass
else:
#创建目录把pg加薪C:\\python目录下新建一个目录pg
pngPath = os.path.join(absPath,'pg')
os.mkdir(pngPath)
#截屏
def Screenshot():
nowtime = time.strftime('%Y_%m_%d_%H_%M_%S',time.localtime(time.time()))
print(nowtime)
# 截屏语句很简单的
im = ImageGrab.grab()
# 保存(图个有png路径或者别的路径需要在这个路径下有这个目录,不然报错,所以我前面是做了规避,没路径我就自己建一个)
im.save('C:\\python\\png\\'+nowtime+'.jpg')
#保存在png目录下
def wordRecognition(picturepath):
""" 你的 APPID AK SK """
APP_ID = '你的AppID,这些参数可以到百度智能云注册一个账号在里面找到'
API_KEY = '你的API_Key'
SECRET_KEY = '你的SECRET-KEY'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
def get_file_content(filePath):
""" 读取图片 """
with open(filePath, 'rb') as fp:
return fp.read()
image = get_file_content('C:\\Python\\png\\'+picturepath) # 填入本地图片位置
#print(image)
""" 调用通用文字识别, 图片参数为本地图片 """
client.basicGeneral(image)
""" 如果有可选参数 """
options = {}
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"
""" 带参数调用通用文
字识别, 图片参数为本地图片 """
result = client.basicGeneral(image, options)
#print(result)
#print("1")
result = result["words_result"]
#print(result)
for x in result:
words = x["words"]
print('{}'.format(words),end="")
for i in range(5):
print("截图!")
time.sleep(3)
Screenshot()
print("暂停")
print("\n")
time.sleep(5) #定时10s看一下
wordRecognition(os.listdir('C:\python\png')[i])
3.小结
第一个自己动手做的实用形小项目,编程来源于生活,加油。