---
# System prepended metadata

title: Number OCR (2019.07)
tags: [OCR, Side Project, Python]

---

Number OCR (2019.07)
===

###### tags: `Side Project`, `Python`, `OCR`

## Brief
使用OpenCV中的KNN實現簡單的文字辨識OCR。

## Result
{%youtube Luno25kXNwY %}

## Method
* Optical Character Recognition，OCR
	是指對文字資料的圖像檔案進行分析辨識處理，取得文字及版面資訊的過程。
    
* K Nearest Neighbor，KNN
	KNN屬於機器學習中的監督式學習(Supervised learning)，不過一般來說監督式學習是透過資料訓練(training)出一個model，但是在KNN其實並沒有做training的動作。KNN一般用來做資料的分類，如果你已經有一群分好類別的資料，後來加進去點就可以透過KNN的方式指定新增加資料的分類。
    
#### 1. 首先用小畫家建立一張寫上數字０～９的圖片，指定這張圖學習。紅框在哪個字就按哪個字，一開始是0就按0，按完之後紅框往左跳。
![](https://i.imgur.com/BFD9Im0.png)

#### 2. 產生下列兩個檔 generalsamples.data 與 generalresponses.data，學習資料與記錄放在裡面，學習完就可以開另一支程式做數字辨識。
![](https://i.imgur.com/JVmPOfA.png)

#### 3. 辨識完的數字字串存入List，然後寫入記事本保存。先辨識原圖，有兩個視窗，白底是辨識的照片，黑底是辨識結果。
![](https://i.imgur.com/gUZRnAu.png)

#### 4. 辨識完數字資料存在名為data.txt的記事本。
![](https://i.imgur.com/RHPiEpA.png)







