亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1123
2025-03-31
OCR庫概述
在讀取和處理圖像、圖像相關的機器學習以及創建圖像等任務中,Python 一直都是非常出
色的語言。雖然有很多庫可以進行圖像處理,但在這里我們只重點介紹兩個庫:Pillow 和
Tesseract
Pillow
盡管 Pillow 算不上是圖像處理功能最全的庫,但是它擁有你需要使用的全部功能,除非你
要用 Python 重寫一個 Photoshop 或進行更加復雜的研究。它也是一個文檔健全且十分易用
的庫。
Pillow 是從 Python 2.x 版本的 Python 圖像庫(Python Imaging Library,PIL)分出來的,支
持 Python 3.x 版本。和 PIL 一樣,Pillow 也可以輕松地導入代碼,并通過大量的過濾、修
飾甚至像素級的變換操作處理圖片:
from PIL import Image, ImageFilter kitten = Image.open("kitten.jpg") blurryKitten = kitten.filter(ImageFilter.GaussianBlur) blurryKitten.save("kitten_blurred.jpg") blurryKitten.show()
1
2
3
4
5
6
7
Tesseract
Tesseract 是一個 OCR 庫,目前由 Google 贊助(Google 也是一家以 OCR 和機器學習技術
聞名于世的公司)。Tesseract 是目前公認最優秀、最精確的開源 OCR 系統。
inux 用戶可以通過 apt-get 安裝:
$sudo apt-get tesseract-ocr
1
2
3
$ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ \ install/master/install)" $brew install tesseract
1
2
3
4
NumPy
雖然 NumPy 并非解決 OCR 問題時必須使用的庫,但是如果你想訓練 Tesseract 識別本章后
面提到的字符或字體,那么就會用到它。NumPy 是一個非常強大的庫,具有大量線性代數
以及大規模科學計算的方法。因為 NumPy 可以用數學方法把圖片表示成巨大的像素數組,
所以它可以流暢地配合 Tesseract 完成任務。
和其他 Python 庫一樣,NumPy 可以通過第三方包管理器(比如 pip)來安裝
$pip install numpy
1
$tesseract text.tif textoutput | cat textoutput.txt
1
2
3
from PIL import Image import subprocess def cleanFile(filePath, newFilePath): image = Image.open(filePath) # 對圖片進行閾值過濾,然后保存 image = image.point(lambda x: 0 if x<143 else 255) image.save(newFilePath) # 調用系統的tesseract命令對圖片進行OCR識別 subprocess.call(["tesseract", newFilePath, "output"]) # 打開文件讀取結果 outputFile = open("output.txt", 'r') print(outputFile.read()) outputFile.close() cleanFile("text_2.jpg", "text_2_clean.png")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Python 圖像處理
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。