<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用python實(shí)現(xiàn)截屏識(shí)別其中的文字

          共 2016字,需瀏覽 5分鐘

           ·

          2021-01-28 14:20



          大家好,歡迎來(lái)到 Crossin的編程教室 !


          你一定用過(guò)那種“OCR神器”,可以把圖片中的文字提取出來(lái),極大的提高工作效率。


          今天,我們就來(lái)做一款實(shí)時(shí)截圖識(shí)別的小工具。顧名思義,運(yùn)行程序時(shí),可以實(shí)時(shí)的把你截出來(lái)的圖片中的文字識(shí)別出來(lái)。


          下次,當(dāng)你想要復(fù)制“百度文庫(kù)”中的內(nèi)容時(shí),不妨試試這個(gè)程序。


          效果預(yù)覽




          源碼解析

          1)等待用戶截圖

          此處需要借助貼圖神器(Snipaste
          其中“f1”是截圖的快捷鍵,“ctrl+c”是把截圖保存到剪貼板的快捷鍵。

          如果使用qq截圖的話,需要把快捷鍵改為對(duì)應(yīng)的“ctrl+alt+c”和“enter”

          順便安利一波Snipaste,

          必備效率神器


          import?keyboard

          #?利用截圖軟件(Snipaste)截圖到剪貼板
          #?輸入鍵盤(pán)的觸發(fā)事件
          keyboard.wait(hotkey="f1")??
          keyboard.wait(hotkey="ctrl+c")
          time.sleep(0.1)

          上面這段代碼執(zhí)行之后,現(xiàn)在已經(jīng)有一張圖片等待在剪貼板里了。

          說(shuō)明:這里的 keyboard.wait 是為了讓程序等待用戶進(jìn)行截屏操作。如果在你的系統(tǒng)上無(wú)法識(shí)別組合鍵,你也可以自定義一個(gè)按鍵(比如 keyboard.wait(hotkey="q")?)作為通知程序完成截屏的確認(rèn)。


          2)保存截圖

          利用PIL模塊的ImageGrab,可以把剪貼板里的那張圖片,保存到當(dāng)前的目錄下,并命名為“screen.png”

          from?PIL?import?ImageGrab

          #?把圖片從剪切板保存到當(dāng)前路徑
          image?=?ImageGrab.grabclipboard()??
          image.save("screen.png")

          3)識(shí)別截圖中的文本

          法一
          pytesseract模塊

          優(yōu)點(diǎn):免費(fèi),易用
          缺點(diǎn):識(shí)別效果很一般,準(zhǔn)確率不高

          使用方法介紹:

          1) 安裝?pytesseract?庫(kù)
          pip install?pytesseract

          2) 安裝?tesseract-ocr.exe?配置環(huán)境變量

          3) 修改pytesseract.py文件,將tesseract_cmd指向Tesseract-OCR的tesseract.exe的絕對(duì)路徑。

          安裝配置完成后,在代碼中執(zhí)行:

          import?pytesseract
          from?PIL?import?Image

          #?法一:利用pytesseract模塊
          #?參數(shù)一:圖片?
          #?參數(shù)二:簡(jiǎn)體中文
          text?=?pytesseract.image_to_string(Image.open("screen.png"),?lang='chi_sim')
          print(text)

          來(lái)看看效果:


          low的不行……(對(duì)于簡(jiǎn)單的標(biāo)準(zhǔn)字體還能湊合)
          要想精度高,還得想別的辦法。


          法二
          百度API接口

          AI開(kāi)放平臺(tái)文檔中心
          https://ai.baidu.com/ai-doc


          查看python語(yǔ)言的SDK文檔

          ?
          點(diǎn)擊右上角(控制臺(tái)),登錄自己的百度賬號(hào),創(chuàng)建“文字識(shí)別”的應(yīng)用


          這里我們使用百度的AI庫(kù)來(lái)簡(jiǎn)化調(diào)用。需安裝:
          pip install baidu_aip

          import?pytesseract
          from?aip?import?AipOcr
          from?PIL?import?ImageGrab

          #?法二:利用百度API
          APP_ID?=?'你的?App?ID'
          API_KEY?=?'你的?Api?Key'
          SECRET_KEY?=?'你的?Secret?Key'

          client?=?AipOcr(APP_ID,?API_KEY,?SECRET_KEY)

          #?讀取圖片
          with?open("screen.png",?'rb')?as?f:
          ????image?=?f.read()

          ????#?調(diào)用百度API通用文字識(shí)別(高精度版),提取圖片中的內(nèi)容
          ????text?=?client.basicAccurate(image)
          ????result?=?text["words_result"]
          ????for?i?in?result:
          ????????print(i["words"])

          結(jié)果如文章首圖:


          我是總結(jié)


          代碼步驟:

          1)等待用戶截圖
          2)保存截圖到當(dāng)前目錄
          3)識(shí)別截圖中的文本

          其中識(shí)別截圖文本,有兩種方法:

          1)利用?pytesseract 模塊

          2)利用百度API接口


          參考代碼地址:
          https://github.com/wwtm/gitpython_examples/blob/master/實(shí)時(shí)截圖識(shí)別OCR/gp_ocr_picture.py

          作者:GitPython

          來(lái)源:GitPython



          _往期文章推薦_

          一行代碼掃出“敬業(yè)福”




          瀏覽 87
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人无码久久久久毛片 | 亚洲日韩黄色片 | 草无码| 91精品久久久久久久不卡 | 99小视频在线观看 |