欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

四個Python常用OCR庫的用法詳解

 更新時間:2023年09月11日 08:56:13   作者:Python數(shù)據(jù)開發(fā)  
在接口自動化工作中,經(jīng)常需要處理文字識別的任務(wù),而OCR庫能夠幫助我們將圖像中的文字提取出來,所以本文為大家整理了四個常用的OCR庫以及它們的用法,需要的可以參考下

在接口自動化工作中,經(jīng)常需要處理文字識別的任務(wù),而OCR(Optical Character Recognition,光學字符識別)庫能夠幫助我們將圖像中的文字提取出來。Python中有幾個常用的OCR庫,包括pyocr、pytesseract和python- tesseract、EasyOCR。

本文將對它們進行比較,并提供一些示例代碼來演示它們在實際接口自動化工作中的應(yīng)用。

1、pyocr

PyOCR是一個Python庫,提供了對多個OCR引擎的封裝。它可以方便地在Python中使用不同的OCR引擎進行文本識別。

PyOCR支持以下OCR引擎:

  • Tesseract:Tesseract是一個開源的OCR引擎,由Google開發(fā)。它支持多種語言,并且在OCR準確性方面表現(xiàn)良好。
  • Cuneiform:Cuneiform是一個開源的OCR引擎,支持多種語言和字體。
  • GOCR:GOCR是一個開源的OCR引擎,主要用于識別簡單的文本和數(shù)字。

適用場景:

  • 文字識別和提?。河糜趯⒂∷Ⅲw文字從圖像中提取出來,以便進行文本處理、搜索和分析。
  • 文檔掃描和轉(zhuǎn)換:用于將掃描的紙質(zhì)文檔轉(zhuǎn)換為可編輯的電子文檔。
  • 自動化數(shù)據(jù)錄入:用于將圖像中的數(shù)據(jù)轉(zhuǎn)換為計算機可讀的格式,以便進行數(shù)據(jù)處理和分析。
  • 圖像標注和分類:用于從圖像中提取文本信息,以便對圖像進行標注和分類。

使用PyOCR進行文本識別的步驟如下:

  • 安裝PyOCR庫和相應(yīng)的OCR引擎:pip install pyocr
  • 導入PyOCR庫和所需的OCR引擎。
  • 初始化OCR引擎。
  • 打開圖像文件或者將圖像轉(zhuǎn)換為PIL圖像對象。
  • 使用OCR引擎的image_to_string方法進行文本識別。

示例:以下是一個使用Tesseract庫進行文字識別的示例:

import pyocr
import pyocr.builders
from PIL import Image
# 初始化OCR引擎
tools = pyocr.get_available_tools()
if len(tools) == 0:
    print("No OCR tool found")
    exit(1)
ocr_tool = tools[0]
# 打開圖像文件
image = Image.open('image.jpg')
# 使用OCR引擎進行文本識別
text = ocr_tool.image_to_string(
    image,
    lang='eng',
    builder=pyocr.builders.TextBuilder()
)
# 打印識別結(jié)果
print(text)

在這個示例中,首先使用pyocr.get_available_tools()獲取可用的OCR引擎列表,然后選擇第一個可用的引擎進行初始化。接著使用PIL庫打開圖像文件,然后使用OCR引擎的image_to_string方法進行文本識別,同時指定識別語言和文本構(gòu)建器。最后打印識別結(jié)果。

2、pytesseract

pytesseract是一個Python庫,它提供了對Tesseract OCR引擎的封裝。Tesseract是一個開源的OCR引擎,由Google開發(fā)。pytesseract可以方便地在Python中使用Tesseract進行文本識別。

pytesseract具有以下特點:

  • 支持多種語言:pytesseract可以識別多種語言的文字,包括英語、中文、日語等。
  • 支持多種圖像格式:pytesseract可以處理多種常見的圖像格式,如JPEG、PNG、TIFF等。
  • 簡單易用:pytesseract提供了一個簡單的API,只需幾行代碼即可完成文本識別。

使用pytesseract進行文本識別的步驟如下:

  • 安裝pytesseract庫和Tesseract OCR引擎。
  • 導入pytesseract庫。
  • 打開圖像文件或者將圖像轉(zhuǎn)換為PIL圖像對象。
  • 使用pytesseract庫的image_to_string方法進行文本識別。

以下是一個使用pytesseract進行文本識別的示例:

import pytesseract
from PIL import Image
# 打開圖像文件
image = Image.open('image.jpg')
# 使用pytesseract進行文本識別
text = pytesseract.image_to_string(image)
# 打印識別結(jié)果
print(text)

在這個示例中,首先使用PIL庫打開圖像文件,然后使用pytesseract庫的image_to_string方法將圖像中的文字識別為文本,最后打印識別結(jié)果。

需要注意的是,使用pytesseract進行文本識別前,需要確保已經(jīng)正確安裝了Tesseract OCR引擎,并將其配置為系統(tǒng)環(huán)境變量之一。這樣pytesseract才能找到并使用Tesseract引擎進行識別。

3、python-tesseract

python-tesseract是一個Python庫,它提供了對Tesseract OCR引擎的封裝。Tesseract是一個開源的OCR引擎,由Google開發(fā)。python-tesseract庫可以方便地在Python中使用Tesseract進行文本識別。

python-tesseract具有以下特點:

  • 支持多種語言:python-tesseract可以識別多種語言的文字,包括英語、中文、日語等。
  • 支持多種圖像格式:python-tesseract可以處理多種常見的圖像格式,如JPEG、PNG、TIFF等。
  • 簡單易用:python-tesseract提供了一個簡單的API,只需幾行代碼即可完成文本識別。

使用python-tesseract進行文本識別的步驟如下:

  • 安裝python-tesseract庫和Tesseract OCR引擎。
  • 導入python-tesseract庫。
  • 打開圖像文件或者將圖像轉(zhuǎn)換為PIL圖像對象。
  • 使用python-tesseract庫的image_to_string方法進行文本識別。

以下是一個使用python-tesseract進行文本識別的示例:

import pytesseract
from PIL import Image
# 打開圖像文件
image = Image.open('image.jpg')
# 使用pytesseract進行文本識別
text = pytesseract.image_to_string(image)
# 打印識別結(jié)果
print(text)

在這個示例中,首先使用PIL庫打開圖像文件,然后使用python-tesseract庫的image_to_string方法將圖像中的文字識別為文本,最后打印識別結(jié)果。

需要注意的是,使用python-tesseract進行文本識別前,需要確保已經(jīng)正確安裝了Tesseract OCR引擎,并將其配置為系統(tǒng)環(huán)境變量之一。這樣python-tesseract才能找到并使用Tesseract引擎進行識別。

以下是一個更為復雜的例子,展示了如何使用python-tesseract進行文本識別,并對識別結(jié)果進行一些后處理:

import pytesseract
from PIL import Image
import re
# 打開圖像文件
image = Image.open('image.jpg')
# 使用python-tesseract進行文本識別
text = pytesseract.image_to_string(image)
# 去除識別結(jié)果中的非法字符
cleaned_text = re.sub(r'[^a-zA-Z0-9\s]', '', text)
# 將識別結(jié)果按行分割成列表
lines = cleaned_text.split('\n')
# 去除空行
lines = [line.strip() for line in lines if line.strip()]
# 打印識別結(jié)果
for line in lines:
    print(line)

在這個例子中,我們首先使用PIL庫打開圖像文件,然后使用python-tesseract庫的image_to_string方法將圖像中的文字識別為文本。接下來,我們使用正則表達式去除識別結(jié)果中的非法字符,只保留字母、數(shù)字和空格。然后,我們將識別結(jié)果按行分割成列表,并去除空行。最后,我們逐行打印識別結(jié)果。

這個例子展示了如何對識別結(jié)果進行一些后處理操作,以獲得更干凈和可讀性更高的文本。根據(jù)實際需求,你可以根據(jù)需要進行更多的后處理操作,如去除特定的字符、提取關(guān)鍵信息等。

4、EasyOCR

EasyOCR是一個功能強大且開源、易于使用的OCR庫,適用于各種文字識別任務(wù),包括文檔掃描、圖像處理、自然語言處理等。它可以幫助開發(fā)者快速實現(xiàn)文字識別功能,并應(yīng)用于各種應(yīng)用領(lǐng)域。與其他OCR庫相比,EasyOCR具有以下特點:

  • 多語言支持:EasyOCR支持超過80種語言的文字識別,包括中文、英文、日文、韓文等。它可以處理多種語言混合的文本,適用于全球范圍的應(yīng)用。
  • 高精度識別:EasyOCR使用了深度學習模型和先進的OCR技術(shù),能夠提供高精度的文字識別結(jié)果。它在多個公開數(shù)據(jù)集上進行了訓練和測試,具有較高的準確率和魯棒性。
  • 簡單易用:EasyOCR提供了一個簡單的API,使得文字識別變得容易。只需幾行代碼,即可將圖像中的文字轉(zhuǎn)換為可用的文本。
  • 跨平臺支持:EasyOCR可以在多個平臺上運行,包括Windows、Linux和Mac OS。它支持Python和命令行界面,可以與其他編程語言和工具集成。

使用EasyOCR進行文字識別的步驟如下:

  • 安裝EasyOCR庫:可以使用pip命令安裝EasyOCR庫,例如pip install easyocr。
  • 導入EasyOCR庫:在Python代碼中導入EasyOCR庫,例如import easyocr。
  • 創(chuàng)建OCR對象:創(chuàng)建一個OCR對象,例如reader = easyocr.Reader(['en', 'zh']),指定要識別的語言。
  • 識別文字:使用OCR對象的readtext方法對圖像中的文字進行識別,例如result = reader.readtext('image.jpg')。
  • 處理識別結(jié)果:根據(jù)需要處理識別結(jié)果,例如提取文字內(nèi)容、位置和置信度等。

以下是一個使用EasyOCR進行文字識別的簡單示例:

import easyocr
# 創(chuàng)建OCR對象
reader = easyocr.Reader(['en', 'zh'])
# 識別文字
result = reader.readtext('image.jpg')
# 處理識別結(jié)果
for (text, bbox, confidence) in result:
    print(f'Text: {text}, Bbox: {bbox}, Confidence: {confidence}')

在這個示例中,我們首先創(chuàng)建了一個OCR對象,指定了要識別的語言為英文和中文。然后,我們使用OCR對象的readtext方法對圖像文件進行文字識別,返回一個包含識別結(jié)果的列表。最后,我們遍歷識別結(jié)果,打印每個文字的內(nèi)容、位置和置信度。

5、小結(jié)

本文介紹了Python中幾個常用的OCR庫,并提供了相應(yīng)的代碼示例。這些庫都可以幫助我們在接口自動化工作中進行文字識別,從而實現(xiàn)更多的自動化功能和任務(wù)。根據(jù)實際需求,您可以選擇適合自己的OCR庫,并結(jié)合其他工具和技術(shù)來完成更復雜的接口自動化工作。

以上就是四個Python常用OCR庫的用法詳解的詳細內(nèi)容,更多關(guān)于Python OCR庫的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在Python的Flask框架下使用sqlalchemy庫的簡單教程

    在Python的Flask框架下使用sqlalchemy庫的簡單教程

    這篇文章主要介紹了在Python的Flask框架下使用sqlalchemy庫的簡單教程,用來簡潔地連接與操作數(shù)據(jù)庫,需要的朋友可以參考下
    2015-04-04
  • Python之列表推導式最全匯總(中篇)

    Python之列表推導式最全匯總(中篇)

    這篇文章主要介紹了Python之列表推導式最全匯總(中篇),本文章內(nèi)容詳細,通過案例可以更好的理解列表推導式的相關(guān)知識,本模塊分為了三部分,本次為中篇,需要的朋友可以參考下
    2023-01-01
  • 如何實現(xiàn)Django Rest framework版本控制

    如何實現(xiàn)Django Rest framework版本控制

    這篇文章主要介紹了如何實現(xiàn)Django Rest framework版本控制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • ruff check文件目錄檢測--exclude參數(shù)設(shè)置路徑詳解

    ruff check文件目錄檢測--exclude參數(shù)設(shè)置路徑詳解

    這篇文章主要為大家介紹了ruff check文件目錄檢測exclude參數(shù)如何設(shè)置多少路徑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • python滲透測試linux密碼激活的示例

    python滲透測試linux密碼激活的示例

    這篇文章主要介紹了python滲透測試linux密碼激活的相關(guān)知識,通過一個crypt的示例給大家介紹的非常詳細,對大家學習python滲透知識有很大的幫助,需要的朋友可以參考下
    2021-05-05
  • 一文了解conda虛擬環(huán)境的使用及常見問題

    一文了解conda虛擬環(huán)境的使用及常見問題

    管理不同項目的依賴關(guān)系是一個常見而棘手的問題,本文主要介紹了一文了解conda虛擬環(huán)境的使用及常見問題,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 初探利用Python進行圖文識別(OCR)

    初探利用Python進行圖文識別(OCR)

    這篇文章主要介紹了初探利用Python進行圖文識別(OCR),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Pandas的Apply函數(shù)具體使用

    Pandas的Apply函數(shù)具體使用

    這篇文章主要介紹了Pandas的Apply函數(shù)具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 用python做個代碼版的小仙女蹦迪視頻

    用python做個代碼版的小仙女蹦迪視頻

    這篇文章主要介紹了怎么樣用python做個代碼版的小仙女蹦迪視頻,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • GPU排隊腳本實現(xiàn)空閑觸發(fā)python腳本實現(xiàn)示例

    GPU排隊腳本實現(xiàn)空閑觸發(fā)python腳本實現(xiàn)示例

    有的服務(wù)器是多用戶使用,GPU的資源常常被占據(jù)著,很可能在夜間GPU空閑了,但來不及運行自己的腳本。如果沒有和別人共享服務(wù)器的話,自己的多個程序想排隊使用GPU,也可以用這個腳本
    2021-11-11

最新評論