<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í)別(30行代碼)

          共 2108字,需瀏覽 5分鐘

           ·

          2022-02-09 17:36

          前言

          想必使用QQ的的同學(xué)中有很多人對(duì)圖片轉(zhuǎn)文字這個(gè)功能不陌生,這個(gè)功能極大地滿足了我們的內(nèi)容提取以及后期修改的需求。但是如果我們想批量進(jìn)行圖片轉(zhuǎn)文字怎么辦呢?總不能一直手動(dòng)重復(fù)這么多遍吧?為了解放你的雙手,提高生產(chǎn)力,我特地寫(xiě)了這篇文章來(lái)教你使用 python 來(lái)實(shí)現(xiàn)圖片轉(zhuǎn)文字,注意,只需要 30 行代碼哦(去除代碼注釋之后)!

          效果展示

          待識(shí)別的圖片如下

          運(yùn)行之后的識(shí)別結(jié)果(右邊部分)

          對(duì)比兩張圖片,可以看到識(shí)別的效果非常不錯(cuò)。

          完整的代碼

          import requests
          import base64
          
          
          def ocr(img_path: str) -> list:
              '''
              根據(jù)圖片路徑,將圖片轉(zhuǎn)為文字,返回識(shí)別到的字符串列表
          
              '''
              # 請(qǐng)求頭
              headers = {
                  'Host': 'cloud.baidu.com',
                  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.76',
                  'Accept': '*/*',
                  'Origin': 'https://cloud.baidu.com',
                  'Sec-Fetch-Site': 'same-origin',
                  'Sec-Fetch-Mode': 'cors',
                  'Sec-Fetch-Dest': 'empty',
                  'Referer': 'https://cloud.baidu.com/product/ocr/general',
                  'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
              }
              # 打開(kāi)圖片并對(duì)其使用 base64 編碼
              with open(img_path, 'rb') as f:
                  img = base64.b64encode(f.read())
              data = {
                  'image': 'data:image/jpeg;base64,'+str(img)[2:-1],
                  'image_url': '',
                  'type': 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic',
                  'detect_direction': 'false'
              }
              # 開(kāi)始調(diào)用 ocr 的 api
              response = requests.post(
                  'https://cloud.baidu.com/aidemo', headers=headers, data=data)
          
              # 設(shè)置一個(gè)空的列表,后面用來(lái)存儲(chǔ)識(shí)別到的字符串
              ocr_text = []
              result = response.json()['data']
              if not result.get('words_result'):
                  return []
          
              # 將識(shí)別的字符串添加到列表里面
              for r in result['words_result']:
                  text = r['words'].strip()
                  ocr_text.append(text)
              # 返回字符串列表
              return ocr_text
          
          
          '''
          img_path 里面填圖片路徑,這里分兩種情況討論:
          第一種:假設(shè)你的代碼跟圖片是在同一個(gè)文件夾,那么只需要填文件名,例如 test1.jpg (test1.jpg 是圖片文件名)
          第二種:假設(shè)你的圖片全路徑是 D:/img/test1.jpg ,那么你需要填 D:/img/test1.jpg
          '''
          img_path = 'test1.jpg'
          # content 是識(shí)別后得到的結(jié)果
          content = "".join(ocr(img_path))
          # 輸出結(jié)果
          print(content)
          

          注意事項(xiàng)

          以上代碼為 python 代碼 ,如需要運(yùn)行成功,則要安裝 python3 版本,并且需要額外安裝 requests 這個(gè)第三方庫(kù),如果你沒(méi)有具備以上條件,可以看看我的這篇文章來(lái)搭建基礎(chǔ)環(huán)境

          順手牽羊:Win下快速搭建Python編程環(huán)境

          如果你想批量進(jìn)行圖片轉(zhuǎn)文字,那么需要具備一定的編程基礎(chǔ),例如會(huì)使用 for 循環(huán)語(yǔ)句。對(duì)于小白而言,沒(méi)有空學(xué)這個(gè)的話,可以給我留言,我后面再加上能實(shí)現(xiàn)圖片批量轉(zhuǎn)文字的版本。

          最后

          感謝大家的閱讀,希望我的分享能給你帶來(lái)幫助。

          瀏覽 13
          點(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>
                  精品卡一卡二 | 99久久婷婷国产综合精品青牛牛 | 一区二区性爱视频 | 免费看毛片网站 | 精品孕妇一级A片免费看 |