# 【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)
>**請依照電腦位元,選取安裝檔案。**
>
>**往下滑,到Tesseract installer for Window**
>**並下載對應您的電腦位元exe檔**
#### ==建置tesseract環境==
到 `C:\Program Files\Tesseract-OCR` 檔案目錄下
複製此路徑,並貼到環境變數Path中
##### 尋找環境變數
> 對 **本機** 按右鍵,點選 **內容** ,找到 **進階系統設定**

##### 尋找系統變數的Path

##### 對Path編輯,並新增路徑

#### ==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
```
## 最終成果
### 學生成績登記處

### 利用CMD計算結果

---
:::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]
:::