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

Python實現(xiàn)識別圖片和掃描PDF中的文字

 更新時間:2025年02月12日 08:14:46   作者:nuclear2011  
在處理掃描的PDF和圖片時,文字信息往往無法直接編輯、搜索或復(fù)制,這給信息提取和分析帶來了諸多不便,所以本文將介紹如何使用Python及相關(guān)OCR庫實現(xiàn)對圖片和掃描PDF中文字的識別,需要的可以了解下

在處理掃描的PDF和圖片時,文字信息往往無法直接編輯、搜索或復(fù)制,這給信息提取和分析帶來了諸多不便。手動錄入信息不僅耗時費力,還容易出錯。光學(xué)字符識別(OCR)技術(shù)能夠?qū)D片中的文字轉(zhuǎn)換為可編輯文本,使信息提取和處理更加高效。如今,OCR已廣泛應(yīng)用于掃描文件的轉(zhuǎn)換、數(shù)字化文檔的整理、以及自動化數(shù)據(jù)輸入等領(lǐng)域。本文將介紹如何使用Python及相關(guān)OCR庫,實現(xiàn)對圖片和掃描PDF中文字的識別。

工具與設(shè)置

要在Python中實現(xiàn)從圖片和掃描PDF中提取文本,我們需要選擇一個適當(dāng)?shù)腛CR庫。本文所選擇的庫是Spire.OCR for Python。該庫支持多種語言,包括英語、法語、德語、簡體中文、繁體中文、日語、韓語等。在使用該庫之前,我們需要完成以下兩個步驟:

步驟1:安裝Spire.OCR for Python

在終端中運行以下命令安裝Spire.OCR for Python:

pip install Spire.OCR

步驟2:下載OCR模型

Spire.OCR for Python提供了支持Windows(64位)、Linux(64位)和MacOS(10.15及以上)操作系統(tǒng)的三種模型。我們需要根據(jù)自己的系統(tǒng)下載適合的模型:

下載完成后,將它解壓并保存到特定的目錄下。

完成以上兩個步驟后,我們就可以使用該庫實現(xiàn)識別圖片和掃描PDF中的文字。

Python 識別圖片中的文字

從圖片中提取文本的過程比較簡單。首先,需要配置 OCR 掃描器的相關(guān)設(shè)置(例如:文本識別語言和OCR模型的路徑);然后對圖片進(jìn)行掃描;最后將識別的文字保存為文本文件。

以下是從圖片中提取文本的關(guān)鍵步驟:

  • 初始化 OCR 掃描器:創(chuàng)建 OcrScanner 對象。
  • 配置 OCR 設(shè)置:通過 OcrScanner 對象的 ConfigureDependencies 方法,設(shè)置 OCR 模型的路徑和文本識別語言。
  • 掃描圖片:使用 OcrScanner 對象的 Scan() 方法,從圖片中識別文本。
  • 保存文本:獲取識別出的文本并保存為文本文件。

實現(xiàn)代碼:

from spire.ocr import *
 
# 初始化OcrScanner對象
scanner = OcrScanner()
 
# 配置OCR設(shè)置(文本識別語言和OCR模型路徑)
# 支持的語言包括英語、法語、德語、日語、韓語、簡體中文、繁體中文等
configureOptions = ConfigureOptions()
configureOptions.ModelPath = r'D:\OCR\win-x64'
configureOptions.Language = 'Chinese'
scanner.ConfigureDependencies(configureOptions)
 
# 掃描圖片
scanner.Scan(r'測試.png')
 
# 獲取識別的文本
text = scanner.Text.ToString() + '\n'
 
# 將文本保存到文本文件
with open('輸出.txt', 'a', encoding='utf-8') as file:
file.write(text + '\n')

原始圖片和識別結(jié)果:

Python 識別圖片中的文字及其坐標(biāo)位置

有時除了識別文本外,還需要獲取文本在圖片中的坐標(biāo)位置。Spire.OCR也支持提取這些信息。

以下是從圖片中識別文本并獲取其坐標(biāo)位置的關(guān)鍵步驟:

  • 初始化OCR掃描器:創(chuàng)建OcrScanner對象。
  • 配置OCR設(shè)置:通過OcrScanner對象的ConfigureDependencies方法設(shè)置OCR模型的路徑和文本識別語言。
  • 掃描圖片:使用OcrScanner 對象的Scan() 方法從圖片中識別文本。
  • 獲取邊框坐標(biāo):遍歷識別的文本中的文本塊,獲取每個文本塊的邊框信息(x, y坐標(biāo)及其寬度和高度)。
  • 保存文本和坐標(biāo):將文本及其坐標(biāo)保存到文本文件中。

實現(xiàn)代碼:

from spire.ocr import *
 
# 初始化OcrScanner對象
scanner = OcrScanner()
 
# 配置OCR設(shè)置(文本識別語言和OCR模型路徑)
# 支持的語言包括英語、法語、德語、日語、韓語、簡體中文、繁體中文等
configureOptions = ConfigureOptions()
configureOptions.ModelPath = r'D:\OCR\win-x64'
configureOptions.Language = 'Chinese'
scanner.ConfigureDependencies(configureOptions)
 
# 掃描圖片
scanner.Scan(r'測試.png')
 
# 遍歷識別的文本中的文本塊,提取每個文本塊的文本和坐標(biāo)位置等信息
text = ''
for block in scanner.Text.Blocks:
    rectangle = block.Box
    positions = f'{block.Text} -> x: {rectangle.X}, y: {rectangle.Y}, w: {rectangle.Width}, h: {rectangle.Height}'
    text += positions + '\n'
 
# 將文本和坐標(biāo)保存到文本文件
with open('圖片文字及坐標(biāo).txt', 'a', encoding='utf-8') as file:
    file.write(text + '\n')

Python 識別掃描PDF中的文字

對于掃描的PDF文檔,需先將每一頁轉(zhuǎn)換為圖片格式??梢越柚?a target="_blank">Spire.PDF for Python庫來實現(xiàn)這一點。將PDF頁面轉(zhuǎn)換為圖片后,即可對每張圖片執(zhí)行 OCR 處理。

在使用以下代碼之前,請先通過以下命令安裝Spire.PDF:

pip install Spire.PDF

以下是從掃描PDF中提取文本的關(guān)鍵步驟:

  • 將PDF頁面轉(zhuǎn)換為圖片:使用Spire.PDF加載掃描的PDF文檔,然后使用PdfDocument.SaveAsImage()方法將文檔的每一頁保存為圖片。
  • 執(zhí)行OCR:使用Spire.OCR識別每張圖片中的文本。
  • 保存識別的文本:將識別的文本保存到文本文件中。

實現(xiàn)代碼:

from spire.pdf import *
from spire.ocr import *
import io
 
# 將PDF頁面轉(zhuǎn)換為圖片
def convert_pdf_page_to_image(pdf, page_index):
    return pdf.SaveAsImage(page_index)
 
# 從圖片中識別文本
def recognize_text_from_image(imgName, language, model_path):
    # 初始化OCR掃描器并配置OCR模型的路徑和文本識別語言
    scanner = OcrScanner()
    configure_options = ConfigureOptions()
    configure_options.Language = language
    configure_options.ModelPath = model_path
    scanner.ConfigureDependencies(configure_options)
 
    # 執(zhí)行OCR并返回識別的文本
    scanner.Scan(imgName)
    data = scanner.Text.ToString()
    return data
 
# 加載掃描PDF文檔
pdf = PdfDocument()
pdf.LoadFromFile('掃描.pdf')
 
# 創(chuàng)建文本文件以保存提取的文本
with open('掃描PDF.txt', 'a', encoding='utf-8') as writer:
    for page_index in range(pdf.Pages.Count):
        # 將PDF頁面轉(zhuǎn)換為圖片
        image = convert_pdf_page_to_image(pdf, page_index)
        imgName="toImage_"+str(page_index)+".png"
        image.Save(imgName)
 
        # 從圖片中識別文本
        recognized_text = recognize_text_from_image(imgName, 'Chinese', r'D:\OCR\win-x64')
 
        # 將識別的文本寫入文本文件
        writer.write(f'Page {page_index + 1}:\n')
        writer.write(recognized_text)
        writer.write('\n\n')  # 在頁面之間添加兩個換行符
 
print('文本已成功保存到"掃描PDF.txt"。')

注意事項

OCR的準(zhǔn)確性很大程度上受到圖片質(zhì)量的影響。使用清晰、對比度良好,不模糊、傾斜的圖片,可以提高識別結(jié)果的準(zhǔn)確性。不同OCR庫可能對不同語言和字體的支持程度不同,一些特定語言或字體可能識別效果較差。因此在識別完成后,最好再人工校對一遍。

到此這篇關(guān)于Python實現(xiàn)識別圖片和掃描PDF中的文字的文章就介紹到這了,更多相關(guān)Python識別圖片和PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python線程安全及多進(jìn)程多線程實現(xiàn)方法詳解

    python線程安全及多進(jìn)程多線程實現(xiàn)方法詳解

    這篇文章主要介紹了python線程安全及多進(jìn)程多線程實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Python實現(xiàn)生成bmp圖像的方法

    Python實現(xiàn)生成bmp圖像的方法

    本文主要介紹了Python實現(xiàn)生成bmp圖像的方法,對大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • Pytorch反向求導(dǎo)更新網(wǎng)絡(luò)參數(shù)的方法

    Pytorch反向求導(dǎo)更新網(wǎng)絡(luò)參數(shù)的方法

    今天小編就為大家分享一篇Pytorch反向求導(dǎo)更新網(wǎng)絡(luò)參數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python 下載Bing壁紙的示例

    Python 下載Bing壁紙的示例

    這篇文章主要介紹了Python 下載Bing壁紙的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • python基礎(chǔ)之并發(fā)編程(一)

    python基礎(chǔ)之并發(fā)編程(一)

    這篇文章主要介紹了詳解python的并發(fā)編程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • Python實現(xiàn)破解12306圖片驗證碼的方法分析

    Python實現(xiàn)破解12306圖片驗證碼的方法分析

    這篇文章主要介紹了Python實現(xiàn)破解12306圖片驗證碼的方法,涉及Python圖片截取、調(diào)用百度識圖及正則截取等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • Python的Django框架下管理站點的基本方法

    Python的Django框架下管理站點的基本方法

    這篇文章主要介紹了Python的Django框架下管理站點的基本方法,需是Django站點部署的基礎(chǔ),要的朋友可以參考下
    2015-07-07
  • Python的Tkinter點擊按鈕觸發(fā)事件的例子

    Python的Tkinter點擊按鈕觸發(fā)事件的例子

    今天小編就為大家分享一篇Python的Tkinter點擊按鈕觸發(fā)事件的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 兩個命令把 Vim 打造成 Python IDE的方法

    兩個命令把 Vim 打造成 Python IDE的方法

    這篇文章主要介紹了兩個命令把 Vim 打造成 Python IDE,需要的朋友可以參考下
    2016-03-03
  • python實戰(zhàn)之用emoji表情生成文字

    python實戰(zhàn)之用emoji表情生成文字

    這篇文章主要介紹了python實戰(zhàn)之用emoji表情生成文字,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05

最新評論