# 【side project】<br>『利用Tesseract OCR+python isdigit()函數』 ###### tags: `side project` `薰` `學習用` `複習用` >:::spoiler 文章目錄 >[TOC] >::: ## 想法 由於自己在校內打工,擔任助教並遠距批改學生作業時,會遇到**重複性的計算分數**,所以想撰寫一個可以**自動辨識分數**及**計算總分數**的project,最終想到利用曾經資概報告研究過的**OCR**,來達到**學習python**運用練習,並解決批改作業的效率。 ## 工具 1. Tesseract OCR 2. Python 3. VSCode ## 參考影片、文章、作品 ### 影片 {%youtube fCEtYBLZ_LA %} {%youtube rH8wN_PhMkY %} ### 文章 [Python OCR 使用手冊 : 圖片轉文字 超簡單上手](https://gamma-ray-studio.blogspot.com/2022/01/python-ocr.html) #### other [Tesseract OCR - 繁體中文【安裝篇】 | 方格子](https://vocus.cc/article/621cfdb3fd8978000162a2e8) [Day26-聽過 OCR 嗎? 實作看看吧 -- pytesseract - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天](https://ithelp.ithome.com.tw/articles/10227263) [深入學習Tesseract-ocr識別中文並訓練字庫的方法 - 台部落](https://www.twblogs.net/a/5b8792ea2b71775d1cd7d6b7) [Tesseract 文字辨識 OCR 引擎使用教學與範例 - Office 指南](https://officeguide.cc/tesseract-open-source-ocr-engine-tutorial-examples/) ### 作品 [UB-Mannheim/tesseract: Tesseract Open Source OCR Engine (main repository)](https://github.com/UB-Mannheim/tesseract) ## 製作過程 ### 資源下載、環境架設 #### ==下載python== >[Welcome to Python.org](https://www.python.org/) #### ==到官方Github,下載tesseract exe檔== >[Home · UB-Mannheim/tesseract Wiki](https://github.com/UB-Mannheim/tesseract/wiki) >**請依照電腦位元,選取安裝檔案。** >![](https://hackmd.io/_uploads/ByzDRZCc5.png) >**往下滑,到Tesseract installer for Window** >**並下載對應您的電腦位元exe檔** #### ==建置tesseract環境== 到 `C:\Program Files\Tesseract-OCR` 檔案目錄下 複製此路徑,並貼到環境變數Path中 ##### 尋找環境變數 > 對 **本機** 按右鍵,點選 **內容** ,找到 **進階系統設定** ![](https://hackmd.io/_uploads/H10rZzR9c.png) ##### 尋找系統變數的Path ![](https://hackmd.io/_uploads/r1zkGG0c5.png) ##### 對Path編輯,並新增路徑 ![](https://hackmd.io/_uploads/H1lnzfC59.png) #### ==CMD 命令提示字元== ##### 開啟命令提示字元 1. **Win+R**,並輸入 **cmd** 2. 找到**window系統**資料夾,並找到**命令提示字元** ##### 輸入指令 >**檢查 python版本** >`python -V` >**檢查 tesseract版本&安裝狀況** >`tesseract -v` >**安裝 處理圖片 python套件** >`pip3 install Pillow` >**安裝 OCR 模組 python套件** >`pip3 install pytesseract` ### python程式碼 >**到 vscode 建立一個demo.py的檔案,並複製以下程式。** ```python=1 # OCR from PIL import Image import pytesseract img_name = './F/hw.png' img = Image.open(img_name) text = pytesseract.image_to_string(img, lang='eng') print(text) # 計算十位數函式 def sum_of_all_number(text): num = 0 sum = 0 for i in text: if i.isdigit(): num = num*10+int(i) else: sum += num num = 0 return sum-3 # 剪掉圖片判斷的Screen1跟F2C,裡面的數字會被抓出來,所以總和-3 print(sum_of_all_number(text)) # 切換檔案、執行指令 # cd C:\Users\User\Downloads\ocr # python .\demo.py ``` ## 最終成果 ### 學生成績登記處 ![](https://hackmd.io/_uploads/S1CcsMCqc.png) ### 利用CMD計算結果 ![](https://hackmd.io/_uploads/HJTU5MCqq.png) --- :::spoiler 最後更新日期 >==第一版==[time=2022 7 3 , 3:27 AM][color=#786ff7] <!-- >第二版[time=2022 3 9 , 8:16 PM][color=#ce770c] --> <!-- >第三版[time=2022 9 23 , 9:11 PM][color=#ce770c] --> >**最後版[time=2022 7 3 , 3:27 AM]**[color=#EA0000] :::