程式實作:手寫數字辨識

程式作品

C 語言

Java

C#

JavaScript

常用函數

文字處理

遊戲程式

衛星定位

系統程式

資料結構

網路程式

自然語言

人工智慧

機率統計

資訊安全

等待完成

訊息

相關網站

參考文獻

最新修改

簡體版

English

  1. 範例一:手寫板 WrittenBoard.zip
  2. 範例二:手寫板2 WrittenBoard2.zip
  3. 範例三:手寫數字辨識 DigitRecognition7seg.zip — 7段顯示辨識法

簡介

手寫辨識系統一定要很複雜嗎?只能使用人工智慧中提到的高深方法嗎?答案當然是否定的,我們可以用很簡單的方法做出手寫辨識系統,只是辨識率沒有那麼好而已,在本文中我們就用類似 7 斷顯示器的七個格子,判斷使用者所寫的字是哪一個數字。

設計畫面

DigitRecognition7seg.jpg

程式碼

手寫辨識的主要程式碼

        private void buttonRun_Click(object sender, EventArgs e)
        {
            List<Button> seg7buttons = new List<Button>();
            StringBuilder seg7flags = new StringBuilder("0000000");
            seg7buttons.Add(button1);
            seg7buttons.Add(button2);
            seg7buttons.Add(button3);
            seg7buttons.Add(button4);
            seg7buttons.Add(button5);
            seg7buttons.Add(button6);
            seg7buttons.Add(button7);

            foreach (Point p in points)
            {
                Trace.WriteLine(p.ToString());
                for (int i=0; i<seg7buttons.Count; i++) {
                    Rectangle r = seg7buttons[i].Bounds;
                    if (r.Contains(p))
                        seg7flags[i] = '1';
                }
            }
            labelPattern.Text = "樣式為:"+seg7flags.ToString();
            labelAnswer.Text = "辨識結果為:"+checkAnswer(seg7flags.ToString());
        }

        String[] seg7patterns = new String[10] { 
            "1111110", // 0
            "0110000", // 1
            "1101101", // 2
            "1111001", // 3
            "0110011", // 4
            "1011011", // 5
            "1011111", // 6
            "1110000", // 7
            "1111111", // 8
            "1111011"  // 9
        };
        String seg7answer="0123456789";
        public char checkAnswer(String seg7flags)
        {
            for (int i = 0; i < seg7patterns.Length; i++)
            {
                if (seg7flags.Equals(seg7patterns[i]))
                    return seg7answer[i];
            }
            return '?';
        }

結語

手寫辨識系統也可以很簡單,不是嗎?

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License