Python基於百度API識別並提取圖片中文字
利用百度 AI 開發平臺的 OCR 文字識別 API 識別並提取圖片中的文字。首先需註冊獲取 API 調用的 ID 和 key,步驟如下:
打開百度AI開放平臺,進入控制臺中的文字識別應用(需要有百度賬號)。
創建一個應用,並進入管理應用,記下 AppID, API Key, Secrect Key,調用 API需用到。
最後安裝 python 的百度ai接口的的庫
pip install baidu-aip
以下是代碼實現,需將所有識別的圖片放進名為 picture 的文件夾。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Tue Jun 12 09:37:38 2018 利用百度api實現圖片文本識別 @author: XnCSD """ import glob from os import path import os from aip import AipOcr from PIL import Image def convertimg(picfile, outdir): '''調整圖片大小,對於過大的圖片進行壓縮 picfile: 圖片路徑 outdir: 圖片輸出路徑 ''' img = Image.open(picfile) width, height = img.size while(width*height > 4000000): # 該數值壓縮後的圖片大約 兩百多k width = width // 2 height = height // 2 new_img=img.resize((width, height),Image.BILINEAR) new_img.save(path.join(outdir,os.path.basename(picfile))) def baiduOCR(picfile, outfile): """利用百度api識別文本,並保存提取的文字 picfile: 圖片文件名 outfile: 輸出文件 """ filename = path.basename(picfile) APP_ID = '******' # 剛才獲取的 ID,下同 API_KEY = '******' SECRECT_KEY = '******' client = AipOcr(APP_ID, API_KEY, SECRECT_KEY) i = open(picfile, 'rb') img = i.read() print("正在識別圖片:\t" + filename) message = client.basicGeneral(img) # 通用文字識別,每天 50 000 次免費 #message = client.basicAccurate(img) # 通用文字高精度識別,每天 800 次免費 print("識別成功!") i.close(); with open(outfile, 'a+') as fo: fo.writelines("+" * 60 + '\n') fo.writelines("識別圖片:\t" + filename + "\n" * 2) fo.writelines("文本內容:\n") # 輸出文本內容 for text in message.get('words_result'): fo.writelines(text.get('words') + '\n') fo.writelines('\n'*2) print("文本導出成功!") print() if __name__ == "__main__": outfile = 'export.txt' outdir = 'tmp' if path.exists(outfile): os.remove(outfile) if not path.exists(outdir): os.mkdir(outdir) print("壓縮過大的圖片...") // 首先對過大的圖片進行壓縮,以提高識別速度,將壓縮的圖片保存與臨時文件夾中 for picfile in glob.glob("picture/*"): convertimg(picfile, outdir) print("圖片識別...") for picfile in glob.glob("tmp/*"): baiduOCR(picfile, outfile) os.remove(picfile) print('圖片文本提取結束!文本輸出結果位於 %s 文件中。' % outfile) os.removedirs(outdir)
到此這篇關於Python基於百度API識別並提取圖片中文字的文章就介紹到這瞭,更多相關Python百度API識別圖片文字內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python批量提取圖片信息並保存的實現
- python批量壓縮圖像的完整步驟
- python圖像處理基本操作總結(PIL庫、Matplotlib及Numpy)
- 三行Python代碼提高數據處理腳本速度
- python pillow庫的基礎使用教程