首頁  >  文章  >  後端開發  >  Python程式實作百度OCR介面對接,實現圖片文字擷取功能

Python程式實作百度OCR介面對接,實現圖片文字擷取功能

PHPz
PHPz原創
2023-08-26 17:28:45678瀏覽

Python程式實作百度OCR介面對接,實現圖片文字擷取功能

Python程式實現百度OCR介面對接,實作圖片文字擷取功能

引言:
隨著深度學習的快速發展,OCR(Optical Character Recognition,光學字元辨識)技術逐漸成為了電腦視覺領域的熱門應用之一。而百度AI開放平台提供的OCR接口,為開發者提供了便捷快速的文字辨識能力。本文將結合Python編程,示範如何對接百度OCR接口,實現圖片文字的擷取功能。

步驟1:申請百度AI開放平台帳號
首先,我們需要到百度AI開放平台官網(https://ai.baidu.com/)註冊一個帳號。註冊完成後,需要建立一個應用,以取得API Key和Secret Key。

步驟2:安裝對應的Python庫
我們需要使用Python進行編程,請確保已經安裝了以下幾個庫:

  • requests:用於發送HTTP請求
  • base64:用於將圖片轉換為Base64編碼
  • hashlib:用於產生MD5簽章
  • time:用於產生時間戳記
  • ##json:用於解析API傳回的JSON資料
可以透過以下指令安裝這些函式庫:

pip install requests

步驟3:編碼實作

接下來,我們將寫Python程式碼實現圖片文字擷取功能。首先,我們需要導入所需的函式庫:

import requests
import base64
import hashlib
import time
import json

然後,我們需要定義幾個變數來儲存API Key、Secret Key等資訊:

API_KEY = 'your_api_key'
SECRET_KEY = 'your_secret_key'
OCR_URL = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic'

接下來,我們需要寫一個函數,用於將圖片轉換為Base64編碼字串:

def image_to_base64(image_path):
    with open(image_path, 'rb') as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

然後,我們需要編寫一個函數,用於產生API請求的簽名資訊:

def generate_sign(url, params, timestamp, secret_key):
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    sorted_params.append(('timestamp', str(timestamp)))
    raw_sign = ''.join([x[0] + '=' + x[1] for x in sorted_params]) + secret_key
    sign = hashlib.md5(raw_sign.encode('utf-8')).hexdigest()
    return url + '?' + '&'.join([x[0] + '=' + x[1] for x in sorted_params]) + '&sign=' + sign

最後,我們編寫一個主函數來呼叫百度OCR接口,實現圖片文字的提取功能:

def ocr(image_path):
    access_token = get_access_token(API_KEY, SECRET_KEY)
    url_params = {
        'access_token': access_token,
        'image': image_to_base64(image_path)
    }
    timestamp = int(time.time())
    request_url = generate_sign(OCR_URL, url_params, timestamp, SECRET_KEY)
    response = requests.post(request_url)
    result = response.json()
    if 'words_result' in result:
        for word in result['words_result']:
            print(word['words'])
    else:
        print('Error occurred: ' + result['error_msg'])

步驟4:運行代碼

現在,我們可以運行代碼來提取圖片中的文字資訊了:

ocr('image.jpg')

在運行之前,請將'image.jpg'替換為您想要提取文字的圖片路徑。

結論:

透過Python程式實現了百度OCR介面的對接,並實現了圖片文字擷取的功能。這使得開發者能夠方便快速地利用百度AI平台的OCR技術,實現各種文字辨識的應用場景。無論是文件掃描、驗證碼辨識或表單填寫等任務,利用OCR的能力,我們可以更有效率地進行文字處理和分析。希望讀者透過本文的演示,能夠更深入地了解OCR的工作原理,並在實際專案中實現更複雜的OCR應用。

以上是Python程式實作百度OCR介面對接,實現圖片文字擷取功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn