none
WPF应用手写识别汉字,识别准确率不如TabletSDK? RRS feed

  • 问题

  •     大家好!最近的应用需要手写识别汉字的功能,应用是WPF程序,阅读文档并编写了一个简单的测试程序,测试发现InkAnalyzer的汉字识别准确率相对Tablet SDK 1.7中的例子很低。是不是哪里没有用对还是什么?请求帮助!谢谢大家!

     

        我的测试环境如下:XP SP2(简体中文版)、.NET3.5 Framework、安装了Tablet SDK以及Tablet PC Edition 2005 Recognizer Pack。

     

    WPF程序代码(做单个汉字识别):

     

    Code Snippet

    public partial class Window1 : Window
    {

        public Window1()
        {
            InitializeComponent();
        }

        private void btnRec_Click(object sender, RoutedEventArgs e)
        {
            InkAnalyzer theInkAnalyzer = new InkAnalyzer();
            if (inkCanvas.Strokes.Count > 0)
            {

                AnalysisHintNode hint = theInkAnalyzer.CreateAnalysisHint();
                hint.Location.MakeInfinite();
                hint.Factoid = "ChineseSimpleCommon";

                hint.CoerceToFactoid = true;
                hint.Guide.Columns = 1;
                hint.Guide.Rows = 1;
                hint.Guide.Midline = 0;
                hint.WordMode = true;
                hint.TopInkBreaksOnly = true;

                theInkAnalyzer.AddStrokes(inkCanvas.Strokes);
                theInkAnalyzer.SetStrokesLanguageId(inkCanvas.Strokes, 0x0804);  // 0x0804 简体中文
                theInkAnalyzer.SetStrokesType(inkCanvas.Strokes, StrokeType.Writing);

                AnalysisStatus status = theInkAnalyzer.Analyze();

                if (status.Successful)
                {
                    textBox1.Text = theInkAnalyzer.GetRecognizedString();
                }
                else
                {
                    MessageBox.Show("Recognition Failed");
                }
            }
        }

        private void btnClear_Click(object sender, RoutedEventArgs e)
        {
            theInkAnalyzer.RemoveStrokes(inkCanvas.Strokes);
            inkCanvas.Strokes.Clear();
            textBox1.Text = "";
        }
    }

     

     
    另外我想问问:例子中WPF手写识别器还是用Tablet PC Edition 2005 Recognizer Pack,这个识别包是专用针对Tablet的,看得出来是2005年发布的了,WPF会不会有其它更新的识别器可用?
    谢谢指教!
     
    也许我的标题不太贴切,因为我在XP下载试测发现WPF的InkAnalyzer本身就是应用TabletSDK(Tablet PC Edition 2005 Recognizer Pack)的识别器:Microsoft 中文(简体)手写识别器。应该说WPF的InkAnalyzer汉字识别准确率不如TabletSDK中Recognizercontext的高,这个问题另我很困惑,希望有朋友能帮助一下,有经验的随便谈谈也好。谢谢!
    • 已移动 小鱼儿 2009年5月19日 10:28 ([Loc]From:.NET Framework 相关)
    2008年11月15日 3:15

答案

  • 楼主试一下手写输入:凯
    这个字在table pc,wpf,及汉王手写下的识别都是一样不准确。
    所以想达到完美的识别精度是做不到的。能将就着识别大部分就算是成功了。
    如想非常精确,还应当同时提供其他输入方式做为辅助。比如用一个软键盘。

    2009年6月12日 2:05

全部回复