不要錢,用Python識別圖片中的文字

今天我們要學習的是在Python通過調用外部應用識別圖片中的文字(OCR)。我們並不需要探究艱深的圖像識別的原理和算法,只需要站在巨人的肩膀上知道如何調用百度的文字識別服務就可以用二三十行代碼高效實現這個功能了。

首先,我們需要註冊百度AI開放平臺(ai.baidu.com),點擊控制檯後找到人工智能中的文字識別創建一個新應用,然後在應用詳情裡記下我們代碼中所需的AppID、API Key、Secret Key。

接下來安裝SDK。CMD打開命令提示符,輸入pip install baidu-aip即可,如果沒有安裝pip,會提示命令不存在,已安裝可以跳過下面兩步。

安裝pip包。到pypi.python.org/pypi/pip下載並解包,打開命令提示符窗口,在pip的目錄下執行命令:python setup.py install。如果提示“ImportError: No module named setuptools”則說明缺少 “setuptools ”包。

安裝setuptools包。到pypi.org/project/setuptools下載並解包,打開命令提示符窗口,在setuptools的目錄下執行命令:python setup.py install。

完成以上準備步驟後,開始編程。(圖1)

不要錢,用Python識別圖片中的文字

記下我們代碼中所需的AppID、API Key、Secret Key


三個常量均為標示用戶,為訪問百度雲做簽名驗證。AipOcr是百度的Python SDK客戶端的功能之一,為我們提供了一系列的識別圖片文字的方法。

要調用這一功能非常簡單。只需要這一句即可將圖片中的文字識別並返回:

result = client.basicGeneral(image);

現在我們通過以下實例代碼獲得本地圖片信息,執行圖像識別,結果用print 輸出看看。百度識別結果為每行文字一個大括號,再用兩行代碼整理一下文本格式,程序如圖2。

不要錢,用Python識別圖片中的文字


執行程序,最基本的文字識別結果如圖3,這個應用流程應該是本地識別圖片信息上傳至百度雲運算返回識別結果,經過測試識別效果優質高效。

不要錢,用Python識別圖片中的文字

識別效果優質高效


當然這僅僅實現了最簡單的本地圖片文字的基本識別。這個接口還有多項參數可以支持多國語言和各類證照票據二維碼等特殊圖片的識別。有興趣的小朋友可以在

https://cloud.baidu.com/doc/OCR/s/Rjwvxzm3n查看接口文檔。

這項服務的特殊功能有每天500次的免費使用次數,對於個人學習是完全夠用了,如果作為公開應用超量的話還需要付費。

這次我們使用百度提供的服務直接跨進了OCR軟件的門檻,在百度AI開放平臺上還有語音識別、人臉識別、機器學習、圖像識別等眾多高大上的功能,直接使用這些人工智能的成果完成自己的應用是不是覺得編程更加有趣了?


# coding=gbk

from aip import AipOcr

# 定義常量

""" 你的 APPID AK SK """

APP_ID = '你的 APPID'

API_KEY = '你的 APP AK'

SECRET_KEY = '你的 APP SK'

# 初始化AipFace對象

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

# 讀取圖片

def get_file_content(filePath):

with open(filePath, 'rb') as fp:

return fp.read()

image = get_file_content('本地圖片地址')

# 調用通用文字識別, 圖片為本地圖片

result = client.basicGeneral(image);

print (result)

#將所有的文字都合併到一起

for item in result['words_result']:

print(item['words'])


分享到:


相關文章: