人人都能使用的圖片轉文字(OCR)


Posted by Anny on 2024-02-17

在數位時代,我們經常需要將圖片上的文字提取出來,這就是光學字符識別(Optical Character Recognition,OCR)技術的用武之地。無論是從圖片中提取文本信息,還是將手寫筆記轉換為數字形式,OCR都可以幫助我們實現這些任務。而今天我們要介紹的是一個使用Python語言和Google Colab平台實現的圖片轉文字的功能,讓每個人都能輕鬆使用。


實作步驟

步驟一:準備工作

首先,我們需要準備好Google Colab的環境,確保我們能夠使用其中的Python模組和工具。
如果你還沒有Google Colab帳號,可以通過Google帳號註冊一個。

步驟二:匯入圖片

在Colab中,我們可以使用 files.upload() 方法來上傳圖片。

from google.colab import files

uploaded = files.upload()

for filename in uploaded.keys():
    print('Uploaded file "{name}" with length {length} bytes'.format(
        name=filename, length=len(uploaded[filename])))

點擊運行然後匯入圖片後,結果如下:

步驟三:安裝模組

接下來,我們需要使用OCR庫來識別圖片上的文字。
這裡我們使用 pytesseract,它是一個Python模組,可以方便地使用Google的Tesseract-OCR引擎。
如果你還沒有安裝 pytesseract,可以在Colab中安裝:

!pip install pytesseract

在Colab環境中若有遇到執行後出現Error:

TesseractNotFoundError: tesseract is not installed or it's not in your PATH. See README file for more information

這是因為 Tesseract OCR 沒有安裝或者無法在系統的 PATH 中找到。
可以改為以下程式來安裝。

!apt-get install tesseract-ocr
!apt-get install libtesseract-dev
!pip install pytesseract

順利安裝完後就可以順利使用套件啦!

步驟四:圖片轉文字

現在我們可以將上傳的圖片讀取並進行OCR處理:

import pytesseract
from PIL import Image
import matplotlib.pyplot as plt

# 開啟圖片
img = Image.open(filename)

# 顯示圖片
plt.imshow(img)
plt.axis('off')  # 不顯示座標軸
plt.show()

# 將圖片轉換為文本
text = pytesseract.image_to_string(img)

# 輸出識別的文字
print("圖中文字為: "+text)

輸出結果如下:

成功!


完整程式碼

將上述步驟整合起來,我們可以得到一個完整的程式碼,用於在Google Colab中實現圖片轉文字的功能:

from google.colab import files
import pytesseract
from PIL import Image
import matplotlib.pyplot as plt

# 上傳圖片
uploaded = files.upload()

for filename in uploaded.keys():
    print('Uploaded file "{name}" with length {length} bytes'.format(
        name=filename, length=len(uploaded[filename])))
    import pytesseract

# 開啟圖片
img = Image.open(filename)

# 顯示圖片
plt.imshow(img)
plt.axis('off')  # 不顯示座標軸
plt.show()

# 將圖片轉換為文本
text = pytesseract.image_to_string(img)

# 輸出識別的文字
print("圖中文字為: "+text)

補充說明

在這篇文章中,我們使用了Python中的幾個模組來實現圖片轉文字的功能:

  • google.colab: 這是Google Colab提供的模組,用於在Colab環境中進行文件上傳等操作。
  • pytesseract: 這是一個Python的OCR模組,可以方便地使用Google的Tesseract-OCR引擎,用於將圖片中的文字識別出來。
  • PIL: 這是Python Imaging Library的縮寫,提供了許多處理圖片的功能,包括打開、編輯和保存圖片等。

這個教學的主要步驟包括上傳圖片、使用Tesseract-OCR進行文字識別,然後輸出識別的文字。通過這個過程,我們可以輕鬆地從圖片中提取出文字信息,並進行後續的處理和分析。


應用場景

圖片轉文字的功能在各個領域都有廣泛的應用,例如:

  • 數據輸入:將紙本文件中的文字轉換為數字形式,便於進行數據處理和分析。
  • 文字識別:識別圖片中的文字,用於自動化識別、驗證碼識別等場景。
  • 手寫文字識別:將手寫文字轉換為數字形式,用於筆記、手寫板等應用。

因此,掌握圖片轉文字的技術,將會對各行各業帶來便利和效率提升。


結語

在本篇文章中,我們探索了如何利用Python和Google Colab快速實現圖片轉文字的功能。
雖然這是一個強大的工具,但需要注意的是,對於手寫文字的識別可能會有一定的挑戰性,文中成功的案例也是使用電腦打的一些簡單數字。
希望本文能為你提供一些有用的信息,並且在你的實踐中取得一些進步。


Github連結

安妮派


#圖片轉文字 #ocr #文字辨識 #Python #Google Colab







Related Posts

Day02 - CSS的數值單位與字型

Day02 - CSS的數值單位與字型

耦合過多的缺點

耦合過多的缺點

ASP.NET Core Web API 入門教學 - 使用資料庫物件取得資料表內容

ASP.NET Core Web API 入門教學 - 使用資料庫物件取得資料表內容


Comments