欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)戰(zhàn)之實(shí)現(xiàn)截圖識(shí)別文字

 更新時(shí)間:2021年11月29日 09:39:05   作者:佟大帥  
本文主要介紹了通過(guò)python實(shí)現(xiàn)截圖識(shí)別圖中文字的功能,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以學(xué)習(xí)一下

前言

系統(tǒng):win10

Python版本:python3.8.6

pycharm版本:pycharm 2021.1.2(Professional Edition)

完整代碼下載:Baidu_Ocr.py-Python

一、獲取百度智能云token

百度智能云 登錄后找到人工智能界面下的文字識(shí)別->管理界面創(chuàng)建應(yīng)用文字識(shí)別。

創(chuàng)建應(yīng)用完成后記錄下,后臺(tái)界面提供的AppID、API key、Secret Key的信息

接下來(lái)根據(jù) 官方提供的文檔獲取使用Token

# encoding:utf-8
import requests
# client_id 為官網(wǎng)獲取的AK, client_secret 為官網(wǎng)獲取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=wgEHks0l6MCpalbs3lPuFX1U&client_secret=Z4Rn4ghBx9k06fUYPmSEIRbCFvWFxLyQ'
response = requests.get(host)
if response:
    print(response.json()['access_token'])

二、百度借口調(diào)用

使用獲取后token調(diào)用百度接口對(duì)圖片進(jìn)行識(shí)別提取文字

# encoding:utf-8

import requests
import base64
'''
通用文字識(shí)別(高精度版)
'''
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
# 二進(jìn)制方式打開(kāi)圖片文件
f = open('圖片.png', 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
# 獲取后的Token的調(diào)用
access_token = '24.0d99efe8a0454ffd8d620b632c58cccc.2592000.1639986425.282335-24065278'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
    print (response.json())

獲取后的token為json格式的數(shù)據(jù)

此處步驟我們可以看出識(shí)別后的文件是以json的格式返回的所以要想達(dá)到取出文字的效果就需要對(duì)json格式的返回值進(jìn)行解析

三、搭建窗口化的程序以便于使用

實(shí)現(xiàn)窗口可視化的第三方類(lèi)庫(kù)是Tkinter。可在終端輸入 pip install tkinter 自行下載安裝

導(dǎo)入tkinter模塊包 構(gòu)建我們的可視化窗口,要是實(shí)現(xiàn)的功能有截圖識(shí)別文字,中英文分離,文字識(shí)別后自動(dòng)發(fā)送給剪切板

from tkinter import *
# 創(chuàng)建窗口
window = Tk()
# 窗口名稱(chēng)
window.title('qcc-tnw')
# 設(shè)置窗口大小
window.geometry('400x600')
# 窗口標(biāo)題設(shè)置
l=Label(window,text='百度API調(diào)用', bg='green', fg='white', font=('Arial', 12), width=30, height=2)
l.pack()
# 設(shè)置文本接收框
E1 = Text(window,width='100',height='100')
# 設(shè)置操作Button,單擊運(yùn)行文字識(shí)別  "window窗口,text表示按鈕文本,font表示按鈕本文字體,width表示按鈕寬度,height表示按鈕高度,command表示運(yùn)行的函數(shù)"
img_txt = Button(window, text='文字識(shí)別', font=('Arial', 10), width=15, height=1)
# 設(shè)置操作Button,單擊分割英文
cut_en = Button(window, text='英文分割', font=('Arial', 10), width=15, height=1)
# 設(shè)置操作Button,單擊分割中文
cut_cn = Button(window, text='中文分割', font=('Arial', 10), width=15, height=1)
# 參數(shù)anchor='nw'表示在窗口的北偏西方向即左上角
img_txt.pack(anchor='nw')
cut_en.pack(anchor='nw')
cut_cn.pack(anchor='nw')
# 使得構(gòu)建的窗口始終顯示在桌面最上層
window.wm_attributes('-topmost',1)
window.mainloop()

四、實(shí)現(xiàn)截圖的自動(dòng)保存

通過(guò)上述對(duì)百度接口的解析發(fā)現(xiàn)接口是不支持提取剪切板中的文件的

所以通過(guò)PIL庫(kù)截取的圖片從剪切板保存到本地,在調(diào)用百度的接口實(shí)現(xiàn)圖片中文字的識(shí)別

PIL的安裝 終端輸入 pip install PIL

from PIL import ImageGrab

#取出剪切板的文件保存至本地

image = ImageGrab.grabclipboard()
s= 'xxx.png'
image.save(s)
#百度接口調(diào)用
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
f = open(s, 'rb')
img = base64.b64encode(f.read())
params = {"image": img}
access_token = '24.ee0e97cbc00530d449464a563e628b8d.2592000.1640228774.282335-24065278'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
for i in response.json()['words_result']:
    print(i['words'])

完成后可以使用qq或微信等的截圖功能截圖并運(yùn)行程序

五、將識(shí)別到的文字輸出顯示在窗口文本框中并將文字發(fā)送到剪切板

if response:
    for i in response.json()['words_result']:
        # 接受識(shí)別后的文本
        E1.insert("insert", i['words'] + '\n')
        E1.pack(side=LEFT)
    # 將識(shí)別后的文字寫(xiě)入剪切板
    pyperclip.copy(E1.get("1.0","end"))

六、提取識(shí)別后文字中的中(英)文

此處的判斷相對(duì)簡(jiǎn)單將 if len(''.join(re.findall(r'[A-Za-z]', i['words'])))<1: 中的‘<'改為‘>'即為中文

E1.delete('1.0','end')
for i in response.json()['words_result']:
#判斷是否存在英文
    if len(''.join(re.findall(r'[A-Za-z]', i['words'])))<1:
        #將識(shí)別正則過(guò)濾后的文本在文本框中顯示
        E1.insert("insert", i['words'] + '\n')
        E1.pack(side=LEFT)
    #復(fù)制到剪切板
    pyperclip.copy(E1.get("1.0", "end"))

最后將方法封裝為函數(shù)形式傳遞至我們定義好的窗口按鈕中?

# 設(shè)置操作Button,單擊運(yùn)行文字識(shí)別  "window窗口,text表示按鈕文本,font表示按鈕本文字體,width表示按鈕寬度,height表示按鈕高度,command表示運(yùn)行的函數(shù)"
img_txt = Button(window, text='文字識(shí)別', font=('Arial', 10), width=15, height=1,command=img_all)
# 設(shè)置操作Button,單擊分割英文
cut_en = Button(window, text='英文分割', font=('Arial', 10), width=15, height=1,command=img_en)
# 設(shè)置操作Button,單擊分割中文
cut_cn = Button(window, text='中文分割', font=('Arial', 10), width=15, height=1,command=img_cn)
# 參數(shù)anchor='nw'表示在窗口的北偏西方向即左上角
img_txt.pack(anchor='nw')
cut_en.pack(anchor='nw')
cut_cn.pack(anchor='nw')
window.wm_attributes('-topmost',1)

以上就是Python實(shí)戰(zhàn)之實(shí)現(xiàn)截圖識(shí)別文字的詳細(xì)內(nèi)容,更多關(guān)于Python 截圖識(shí)別文字的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • OpenCV清除小面積連通域的實(shí)現(xiàn)方法

    OpenCV清除小面積連通域的實(shí)現(xiàn)方法

    本文主要介紹了OpenCV清除小面積連通域的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字 Python圖片讀入與處理

    Python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字 Python圖片讀入與處理

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字,Python圖片的讀入與處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python?logging多進(jìn)程多線(xiàn)程輸出到同一個(gè)日志文件的實(shí)戰(zhàn)案例

    python?logging多進(jìn)程多線(xiàn)程輸出到同一個(gè)日志文件的實(shí)戰(zhàn)案例

    這篇文章主要介紹了python?logging多進(jìn)程多線(xiàn)程輸出到同一個(gè)日志文件的實(shí)戰(zhàn)案例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • 詳解anaconda離線(xiàn)安裝pytorchGPU版

    詳解anaconda離線(xiàn)安裝pytorchGPU版

    這篇文章主要介紹了詳解anaconda離線(xiàn)安裝pytorchGPU版,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • python創(chuàng)建文本文件的簡(jiǎn)單方法

    python創(chuàng)建文本文件的簡(jiǎn)單方法

    在本篇內(nèi)容里小編給大家整理分享的是一篇關(guān)于python創(chuàng)建文本文件的簡(jiǎn)單方法,有需要的朋友們可以參考學(xué)習(xí)下。
    2020-08-08
  • 分析Python list操作為什么會(huì)錯(cuò)誤

    分析Python list操作為什么會(huì)錯(cuò)誤

    這篇文章主要介紹了分析Python list操作為什么會(huì)錯(cuò)誤,python搞數(shù)據(jù)分析,在很多方面python有著比Matlab更大的優(yōu)勢(shì),下面來(lái)看看文章具體介紹的相關(guān)內(nèi)容吧,需要的朋友可以參考一下
    2021-11-11
  • Pandas提取數(shù)據(jù)的三種方式

    Pandas提取數(shù)據(jù)的三種方式

    本文主要介紹了Pandas提取數(shù)據(jù)的三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程

    Python接口自動(dòng)化淺析pymysql數(shù)據(jù)庫(kù)操作流程

    本文主要介紹pymysql安裝、操作流程、語(yǔ)法基礎(chǔ)及封裝操作數(shù)據(jù)庫(kù)類(lèi),需要的朋友可以參考下,希望能對(duì)大家有所幫助,每日提升一點(diǎn)點(diǎn),歡迎大家多多交流討論
    2021-08-08
  • Python的命令行參數(shù)實(shí)例詳解

    Python的命令行參數(shù)實(shí)例詳解

    python中有一個(gè)模塊sys,sys.argv這個(gè)屬性提供了對(duì)命令行參數(shù)的訪問(wèn),下面這篇文章主要給大家介紹了關(guān)于Python命令行參數(shù)實(shí)例的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • python解析照片拍攝時(shí)間進(jìn)行圖片整理

    python解析照片拍攝時(shí)間進(jìn)行圖片整理

    這篇文章主要為大家介紹了python解析照片拍攝時(shí)間進(jìn)行圖片整理的示例源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07

最新評(píng)論