1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        使用Python快速實現(xiàn)圖片文字識別(30行代碼)

        共 2108字,需瀏覽 5分鐘

         ·

        2022-02-09 17:36

        前言

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

        效果展示

        待識別的圖片如下

        運行之后的識別結(jié)果(右邊部分)

        對比兩張圖片,可以看到識別的效果非常不錯。

        完整的代碼

        import requests
        import base64
        
        
        def ocr(img_path: str) -> list:
            '''
            根據(jù)圖片路徑,將圖片轉(zhuǎn)為文字,返回識別到的字符串列表
        
            '''
            # 請求頭
            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',
            }
            # 打開圖片并對其使用 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'
            }
            # 開始調(diào)用 ocr 的 api
            response = requests.post(
                'https://cloud.baidu.com/aidemo', headers=headers, data=data)
        
            # 設(shè)置一個空的列表,后面用來存儲識別到的字符串
            ocr_text = []
            result = response.json()['data']
            if not result.get('words_result'):
                return []
        
            # 將識別的字符串添加到列表里面
            for r in result['words_result']:
                text = r['words'].strip()
                ocr_text.append(text)
            # 返回字符串列表
            return ocr_text
        
        
        '''
        img_path 里面填圖片路徑,這里分兩種情況討論:
        第一種:假設(shè)你的代碼跟圖片是在同一個文件夾,那么只需要填文件名,例如 test1.jpg (test1.jpg 是圖片文件名)
        第二種:假設(shè)你的圖片全路徑是 D:/img/test1.jpg ,那么你需要填 D:/img/test1.jpg
        '''
        img_path = 'test1.jpg'
        # content 是識別后得到的結(jié)果
        content = "".join(ocr(img_path))
        # 輸出結(jié)果
        print(content)
        

        注意事項

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

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

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

        最后

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

        瀏覽 13
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            欧美一级夜夜爽 | 久久久久久久免费观看 | 一级毛片视频 | 99久久自偷自偷国产精品不卡 | 91大神在线看 | 色婷婷精品视频 | 日韩三级片无码 | 国产成人无码视频在线观看原 | 香蕉卖淫视频 | 操死骚逼|