胖胖胖胖2020 发表于 2020-3-12 21:35

【原创源码】【Python】自己写的小工具,截图OCR识别

花了一晚上写的小工具,可以自动将剪贴板里的图片进行ocr识别,识别出的文字可以直接复制粘贴
调用的是XX的api接口
源码如下import os
import time
##读取图片
def GetFile(filePath):
    with open(filePath, 'rb') as fp:
      return fp.read()

##从剪贴板保存图像
def GetPhoto():
    from PIL import Image, ImageGrab
    im = ImageGrab.grabclipboard()
    if isinstance(im, Image.Image)==True:
      os.mkdir(r"D:\TempPhoto")
      open(r"D:\TempPhoto\1.jpg","w+")
      im.save(r"D:\TempPhoto\1.jpg")
      return 0
    else:
      return 1

##调用baidu接口识别
def Identify():
    import pyperclip
    from aip import AipOcr
   
    ##插入你申请的密钥
    APP_ID = ''
    API_KEY = ''
    SECRET_KEY = ''
   
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    image = GetFile(r"D:\TempPhoto\1.jpg")
    Result=client.basicAccurate(image)
    print("查询ID:%r"%Result.get("log_id"))
    print("***************************")
    Content=Result['words_result']
    for i in range(Result.get("words_result_num")):
      print(Content["words"])
    print("***************************")

    data = open(r"D:\TempPhoto\1.txt",'a+')
    for i in range(Result.get("words_result_num")):
      print(Content["words"],file=data)
    data.close()

    data=open(r"D:\TempPhoto\1.txt","r")
    Str = data.read()
    pyperclip.copy(Str)
    data.close()
    print("Done!已复制到剪贴板")

##清理残余文件
def Clean():
    os.remove(r"D:\TempPhoto\1.txt")
    os.remove(r"D:\TempPhoto\1.jpg")
    os.rmdir(r"D:\TempPhoto")

print("本程序可以自动识别剪贴板中的图片上的文字\n调用XXOCR接口完成功能\n识别出的文字可以直接进行复制粘贴")
print("每次尝试识别时间间隔为两秒,程序已开始运行")
t=1
while True:
    i=GetPhoto()
    if i==0:
      os.system("cls")
      print("发现剪贴板中的图片!")
      print("开始识别,第%d次"%t)
      Identify()
      Clean()
      t=t+1
    else:
      time.sleep(2)


申请地址:https://login.bce.baidu.com/?account=&redirect=http%3A%2F%2Fconsole.bce.baidu.com%2Fai%2F

winmask 发表于 2020-4-12 02:41

执行后提示我
本程序可以自动识别剪贴板中的图片上的文字
调用XXOCR接口完成功能
识别出的文字可以直接进行复制粘贴
每次尝试识别时间间隔为两秒,程序已开始运行
然后就一直是在等待中了

44217123 发表于 2020-3-12 23:45

=== RESTART: C:/Users/yun/AppData/Local/Programs/Python/Python38/识别剪切板的图片.py ===
本程序可以自动识别剪贴板中的图片上的文字
调用XXOCR接口完成功能
识别出的文字可以直接进行复制粘贴
每次尝试识别时间间隔为两秒,程序已开始运行
Traceback (most recent call last):
File "C:/Users/yun/AppData/Local/Programs/Python/Python38/识别剪切板的图片.py", line 61, in <module>
    i=GetPhoto()
File "C:/Users/yun/AppData/Local/Programs/Python/Python38/识别剪切板的图片.py", line 10, in GetPhoto
    from PIL import Image, ImageGrab
ModuleNotFoundError: No module named 'PIL'
我最近才刚刚学习Python的小白,弱弱地问一句,PIL怎么定义?

黄河大鲤鱼 发表于 2020-3-12 22:50

求离线版。

胖胖胖胖2020 发表于 2020-3-13 00:39

44217123 发表于 2020-3-12 23:45
=== RESTART: C:/Users/yun/AppData/Local/Programs/Python/Python38/识别剪切板的图片.py ===
本程序可以 ...

pip install pillow

胖胖胖胖2020 发表于 2020-3-13 00:40

黄河大鲤鱼 发表于 2020-3-12 22:50
求离线版。

调用的网络接口,莫得离线版

ctOS_ 发表于 2020-3-13 20:14

请问这个OCR可以识别五笔字根吗,我在考虑用python写一个五笔代打工具

鹤鹤鹤 发表于 2020-3-28 18:06

楼主,打包的时候提示42行语法错误了,但是我不知道怎么改,可以帮我改改吗?

vagrantear 发表于 2020-3-28 18:53

感谢分享源码,来学习一下

hshcompass 发表于 2020-3-28 20:34

效果如何,求展示。

鹤鹤鹤 发表于 2020-3-29 00:10

鹤鹤鹤 发表于 2020-3-28 18:06
楼主,打包的时候提示42行语法错误了,但是我不知道怎么改,可以帮我改改吗?

原来是python版本问题
页: [1] 2
查看完整版本: 【原创源码】【Python】自己写的小工具,截图OCR识别