python 【文字识别】

 1 #截图并保存本地
 2 import keyboard
 3 
 4 from PIL import ImageGrab,Image
 5 
 6 from time import sleep
 7 
 8 import sys
 9 
10 from baiDu import BaiduAPI
11 
12 def screenShot():
13     #监听按压事件
14 
15 
16         
17     if keyboard.wait(hotkey="ctrl+alt+a") == None:
18 
19              
20          sleep(1)
21          ##获取剪贴板的图片
22          im=ImageGrab.grabclipboard()
23 
24          if isinstance(im,Image.Image):
25 
26                 im.save("Justice.png")
27 
28          else:
29 
30              print("重新截图")
31 if __name__ == "__main__":
32 
33      #创建对象
34     baiduapi = BaiduAPI('api.ini')
35     for i in range(sys.maxsize):
36 
37          screenShot()
38 
39          print(baiduapi.PictureToText("Justice.png"))
40 
41              
42              
43         
44         
监听+截图保存本地
 1 import configparser
 2 
 3 #百度云的API
 4 from aip import AipOcr
 5 
 6 class BaiduAPI():
 7      
 8     
 9      '''调用百度云的API实现文字识别'''
10 
11 
12      def __init__(self,filePath=None):
13           
14           
15           #初始化
16           target = configparser.ConfigParser()
17           target.read(filePath)
18           #读取工单
19           APP_ID = target.get('工单密码','App_ID')
20           API_KEY = target.get('工单密码','API_KEY')
21           SECRET_KEY = target.get('工单密码','SECRET_KEY')
22 
23           self.client =  AipOcr(APP_ID, API_KEY, SECRET_KEY)
24 
25          
26      def PictureToText(self,filePath):
27           '''图像转文字'''
28           image = self.getPicture(filePath)
29           #文字识别
30           texts = self.client.basicGeneral(image)
31 
32           print(texts)
33           allTexts =""
34           
35           for words in texts['words_result']:
36                allTexts += "".join(words.get("words", ""))
37 
38           return allTexts     
39 
40      @staticmethod  #静态方法
41      def getPicture(filePath):
42           
43           with open(filePath,"rb") as fp:
44                             
45                return fp.read()
46           
47 if __name__ == "__main__":
48      
49      #创建对象
50      baiduapi = BaiduAPI('api.ini')
51 
52      baiduapi.PictureToText("Justice.png")
百度识别API

 

 1 import win32con
 2 
 3 import win32clipboard as w
 4 
 5 
 6 class GetText:
 7     '''图像内容识别的内容返回给剪切板'''
 8 
 9     @staticmethod
10     def getText():
11         '''获取剪贴板的内容'''
12         w.OpenClipboard()
13         d = w.GetClipboardData(win32con.CF_UNICODETEXT)
14         w.CloseClipboard()
15         return d
16 
17     @classmethod
18     def setText(cls,aString):
19         '''需要传递个参数用于复制到剪贴板'''
20         w.OpenClipboard()
21         w.EmptyClipboard()
22         w.SetClipboardData(win32con.CF_UNICODETEXT,aString)
23         w.CloseClipboard()
24 
25 if __name__ == "__main__":
26 
27     GetText.setText("Justice")
28     GetText.getText()
getText

 

 

 1 import win32con,time
 2 
 3 import win32clipboard as w
 4 
 5 
 6 class GetText(object):
 7 
 8     @staticmethod
 9     def getText():
10 
11         w.OpenClipboard()
12         d = w.GetClipboardData(win32con.CF_UNICODETEXT)
13         w.CloseClipboard()
14         return d
15     @classmethod
16     def setText(cls,aString):
17 
18         w.OpenClipboard()
19         w.EmptyClipboard()
20         w.SetClipboardData(win32con.CF_UNICODETEXT,aString)
21         w.CloseClipboard()
22 
23 if __name__ == '__main__':
24 
25     GetText.setText("Justice")
26     time.sleep(3)
27     GetText.getText()
getText--剪切板

 

posted @ 2018-07-25 15:16  Justice-V  阅读(209)  评论(0)    收藏  举报