最近有幸接觸到 Tesseract ,是個光學辨識引擎,是HP實驗室的專屬軟體,輾轉演變為開源,
而後由 google 開始贊助開發,現已非常強大
在市面上的應用應該滿多的,如最常見的車牌辨識等等,也支援非常多國的語言,非常的穩健,
而最近剛好有幸玩到,就來記錄使用方式。
安裝 Tesseract-OCR
來到GitHub 上的 Tesseract at UB Mannheim 頁面,在頁面中有個下載連結,直接點選,如下圖
點選安裝完成後,路徑會是 C:\Program Files\Tesseract-OCR
完成後,若有需要額外支援多語言可以到這邊下載對應的語言包,若是繁體中文,那就下載
chi_tra.traineddata,而英文(eng.traineddata)由於是預設支援,所以無需特別下載
下載回來後,需要放到對應的資料夾目錄
C:\Users\username\AppData\Local\Programs\Tesseract-OCR\tessdata
撰寫程式
首先我們準備一個圖片檔,內文有些數字,我們將辨識出這些數字並且輸出
建立一個 Python 檔案,撰寫內容如下
由上而下來看,其中 PIL(Pillow) 為圖片操作套件,這邊用來讀取圖片檔案,而在 main() 方法中,我們依序指定了
辨識套件的執行檔路徑 teseract.exe ,並且將檔案以及指定的辨識語言傳入 image_to_string() 方法參數,
最後我們將讀取到的結果輸出
插曲,在實作過程中,發現跑起來時一直報錯誤,說明路徑有誤之類的,查了之後,
發現原來python 在字串應用上是有一些技巧的;
若以這次的程式碼來說,我在字串前面都會加上 「r」 ,代表忠實呈現我內文的斜線,
python 也有其他字詞的應用,如字串前加 u,表示後面字串以 Unicode 格式 進行編碼,
若字串前加 f,表示字串內支援大括號內的python 表示式
name = ‘processing’
print(f’{name} done’)
詳情可參考
沒有留言:
張貼留言