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~9的圖片,指定這張圖學習。紅框在哪個字就按哪個字,一開始是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)