原贴:http://www.cnblogs.com/geovindu/p/3702427.html

下載:
//Microsoft Windows XP Tablet PC Edition 2005 Recognizer Pack http://www.microsoft.com/zh-cn/download/details.aspx?id=1601 //包各种语言包
//Microsoft Windows XP Tablet PC Edition Software Development Kit 1.7 http://www.microsoft.com/en-us/download/details.aspx?id=20039
* Microsoft Speech Platform - Software Development Kit (SDK) (Version ) http://www.microsoft.com/en-us/download/details.aspx?id=27226
* Microsoft SDKs http://msdn.microsoft.com/en-us/dd299405.aspx
*Microsoft.Ink 命名空间 http://msdn.microsoft.com/zh-cn/library/microsoft.ink%28v=vs.90%29.aspx
* Microsoft Ink Desktop for Windows Vista http://www.microsoft.com/zh-CN/download/details.aspx?id=6023
* http://msdn.microsoft.com/en-us/data/ms695600(v=vs.71)
* Microsoft.Ink.dll CLR2. Update (KB900722) http://www.microsoft.com/zh-cn/download/details.aspx?id=22557
* Update for Tablet PC Microsoft Ink and .Net Framework 2.0 compatibility.
* Microsoft.Ink The following tables list the members exposed by the Microsoft.Ink namespace.
* http://msdn.microsoft.com/en-us/library/ms826516.aspx
*
* 安裝的文件在://Program Files\Microsoft Tablet PC Platform SDK\Include\Microsoft.Ink.dll
* 在Windows XP sp3 環境下測試
*/ using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.Ink;////引用:Micosoft Tablet PC
//using Microsoft.Ink.Analysis;//Windows Vista namespace XPTabletPC
{
/// <summary>
/// 手写识别
/// </summary>
public partial class Form2 : Form
{
InkCollector ic;
RecognizerContext rct;
// Recognizer rc;
string FullCACText; /// <summary>
///
/// </summary>
public Form2()
{
InitializeComponent();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form2_Load(object sender, EventArgs e)
{
//this.rct.RecognitionWithAlternates += new RecognizerContextRecognitionWithAlternatesEventHandler(rct_RecognitionWithAlternates); ic = new InkCollector(PictureboxInk.Handle);
this.ic.Stroke += new InkCollectorStrokeEventHandler(ic_Stroke); ic.Enabled = true;
ink_(); // this.ic.Stroke += new InkCollectorStrokeEventHandler(ic_Stroke);
this.rct.RecognitionWithAlternates += new RecognizerContextRecognitionWithAlternatesEventHandler(rct_RecognitionWithAlternates); rct.Strokes = ic.Ink.Strokes; }
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void rct_RecognitionWithAlternates(object sender, RecognizerContextRecognitionWithAlternatesEventArgs e)
{ string ResultString = "";
RecognitionAlternates alts; if (e.RecognitionStatus == RecognitionStatus.NoError)
{
alts = e.Result.GetAlternatesFromSelection(); foreach (RecognitionAlternate alt in alts)
{
ResultString = ResultString + alt.ToString() + " ";
}
}
FullCACText = ResultString.Trim();
Control.CheckForIllegalCrossThreadCalls = false;
textBox1.Text = FullCACText;
returnString(FullCACText);
Control.CheckForIllegalCrossThreadCalls = true; }
/// <summary>
///
/// </summary>
/// <param name="str"></param>
private void returnString(string str)
{
string[] str_temp = str.Split(' ');
string str_temp1 = "shibie_";
string str_temp2 = "";
if (str_temp.Length > )
{
for (int i = ; i < str_temp.Length; i++)
{
str_temp2 = str_temp1 + i.ToString();
Control[] con_temp = Controls.Find(str_temp2, true);
if (con_temp.Length > )
{
((Button)(con_temp[])).Text = str_temp[i];
}
}
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void ic_Stroke(object sender, InkCollectorStrokeEventArgs e)
{
rct.StopBackgroundRecognition();
rct.Strokes.Add(e.Stroke);
rct.CharacterAutoCompletion = RecognizerCharacterAutoCompletionMode.Full;
rct.BackgroundRecognizeWithAlternates();
}
/// <summary>
///
/// </summary>
private void ink_()
{
Recognizers recos = new Recognizers();
Recognizer chineseReco = recos.GetDefaultRecognizer(); rct = chineseReco.CreateRecognizerContext();
}
/// <summary>
///
/// </summary>
private void ic_Stroke()
{ }
/// <summary>
/// 获取字
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
this.textBox1.Text = ""; textBox1.SelectedText = ic.Ink.Strokes.ToString();
/* if (0 == rc.Count)
{
MessageBox.Show("There are no handwriting recognizers installed. You need to have at least one in order to recognize ink.");
}
else
{ // Note that the Strokes' ToString() method is a
// shortcut for retrieving the best match using the
// default recognizer. The same result can also be
// obtained using the RecognizerContext. For an
// example, uncomment the following lines of code:
//
RecognizerContext myRecoContext = new RecognizerContext();
myRecoContext.CharacterAutoCompletion = RecognizerCharacterAutoCompletionMode.Full;
RecognitionStatus status;
RecognitionResult recoResult;
//
myRecoContext.Strokes = ic.Ink.Strokes;
recoResult = myRecoContext.Recognize(out status);
textBox1.SelectedText = recoResult.TopString;
// // textBox1.SelectedText = ic.Ink.Strokes.ToString();
}*/
}
/// <summary>
/// 清除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
if (!ic.CollectingInk)
{
Strokes strokesToDelete = ic.Ink.Strokes;
rct.StopBackgroundRecognition();
ic.Ink.DeleteStrokes(strokesToDelete);
rct.Strokes = ic.Ink.Strokes;
ic.Ink.DeleteStrokes();//清除手写区域笔画;
PictureboxInk.Refresh();//刷新手写区域
} }
/// <summary>
/// 选择颜色
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
colorDialog1.FullOpen = true;
colorDialog1.ShowDialog();
ic.DefaultDrawingAttributes.Color = colorDialog1.Color; } }
}
   

Tablet PC InkEdit Control

http://www.c-sharpcorner.com/UploadFile/mahesh/InkEdit11042005152237PM/InkEdit.aspx

https://msdn.microsoft.com/zh-cn/ms839536

[转]csharp:Microsoft.Ink 手写识别(HandWriting Recognition)的更多相关文章

  1. csharp:Microsoft.Ink 手写识别(HandWriting Recognition)

    /* 下載: //Microsoft Windows XP Tablet PC Edition 2005 Recognizer Pack http://www.microsoft.com/zh-cn/ ...

  2. 背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别

    [源码下载] 背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别 作者:webabcd 介绍背水一战 Windows 10 之 控件(媒体类) ...

  3. 2019-11-20-WPF-使用-MyScript-的-IInk-做手写识别

    title author date CreateTime categories WPF 使用 MyScript 的 IInk 做手写识别 lindexi 2019-11-20 08:18:26 +08 ...

  4. 【Win 10 应用开发】手写识别

    记得前面(忘了是哪天写的,反正是前些天,请用力点击这里观看)老周讲了一个14393新增的控件,可以很轻松地结合InkCanvas来完成涂鸦.其实,InkCanvas除了涂鸦外,另一个大用途是墨迹识别, ...

  5. AI应用开发实战 - 手写识别应用入门

    AI应用开发实战 - 手写识别应用入门 手写体识别的应用已经非常流行了,如输入法,图片中的文字识别等.但对于大多数开发人员来说,如何实现这样的一个应用,还是会感觉无从下手.本文从简单的MNIST训练出 ...

  6. (五) Keras Adam优化器以及CNN应用于手写识别

    视频学习来源 https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553 笔记 Adam,常 ...

  7. JS / Egret 单笔手写识别、手势识别

    UnistrokeRecognizer 单笔手写识别.手势识别 UnistrokeRecognizer : https://github.com/RichLiu1023/UnistrokeRecogn ...

  8. (手写识别) Zinnia库及其实现方法研究

    Zinnia库及其实现方法研究 (转) zinnia是一个开源的手写识别库.采用C++实现.具有手写识别,学习以及文字模型数据制作转换等功能. 项目地址 [http://zinnia.sourcefo ...

  9. android 开源 OCR 项目 及手写识别

    http://blog.csdn.net/archfree/article/details/6023676 1)一个为Android平台,将识别由手机的相机拍摄的图像文本应用程序. http://co ...

随机推荐

  1. sql去重;同一条数据出现多条取一条的sql语句

    理论上相同数据个别字段值不同重复问题: 1.某字段重复,其他字段值不同时,按重复字段分组只取一条的sql语句(eg:相同的数据某个字段值有差别导致存储两条或多条无意义重复数据的情况)select s. ...

  2. JAVA并行程序基础

    JAVA并行程序基础 一.有关线程你必须知道的事 进程与线程 在等待面向线程设计的计算机结构中,进程是线程的容器.我们都知道,程序是对于指令.数据及其组织形式的描述,而进程是程序的实体. 线程是轻量级 ...

  3. vm options设置

    -Dfile.encoding=UTF-8 vmopiton.properties  加入 8A7674

  4. POJ 3685 Matrix 二分 函数单调性 难度:2

      Memory Limit: 65536K Total Submissions: 4637   Accepted: 1180 Description Given a N × N matrix A, ...

  5. bzoj3040

    题解: 模板题,地界特斯拉+堆优化 注意第一种建边 代码: #include<bits/stdc++.h> using namespace std; typedef long long l ...

  6. Python 数据类型--Bytes类型

    一.Bytes类型 在Python3以后,字符串和bytes类型彻底分开了.字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的. bytes数据类型在所有的操作和使用甚至内置方法上和字 ...

  7. linux fdisk 添加硬盘,分区,挂载,永久挂载

    具体步骤: 1.SSH登陆服务器: 2.列出所有硬盘: 命令:ll /dev/disk/by-path 我这里还有个sda 3.查看磁盘分区情况: 命令 :fdisk -l 最上面两部分表示我有两个物 ...

  8. 《Python》 面向对象三大特性之继承

    一.继承大纲: 继承和抽象(两个概念) 1.单继承: 语法: 父类.基类.超类 子类.派生类 继承与重用:子类可以使用父类中的名字(变量和方法) 继承与派生:子类在父类的基础上又新创建了自己需要的方法 ...

  9. iOS 9 通用链接(Universal Links)

    什么是Universal Links? 在iOS9之前,对于从各种从浏览器.Safari中唤醒APP的需求,我们通常只能使用scheme.但是这种方式需要提前判断系统中是否安装了能够响应此scheme ...

  10. 添加MyEclipse WebSphere Portal Server支持(二)

    MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] 三.支持WebSphere Portal部署 当您为WebSphere Portal 7.0或8. ...