csharp:Microsoft.Ink 手写识别(HandWriting Recognition)
win10: C:\Program Files\Common Files\Microsoft Shared\Ink\Microsoft.Ink.dll
/*
下載:
//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 11) 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.0 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 > 0)
{
for (int i = 0; i < str_temp.Length; i++)
{
str_temp2 = str_temp1 + i.ToString();
Control[] con_temp = Controls.Find(str_temp2, true);
if (con_temp.Length > 0)
{
((Button)(con_temp[0])).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(0);
}
/// <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; } }
}
20150325
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)的更多相关文章
- [转]csharp:Microsoft.Ink 手写识别(HandWriting Recognition)
原贴:http://www.cnblogs.com/geovindu/p/3702427.html 下載: //Microsoft Windows XP Tablet PC Edition 2005 ...
- 背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别
[源码下载] 背水一战 Windows 10 (62) - 控件(媒体类): InkCanvas 保存和加载, 手写识别 作者:webabcd 介绍背水一战 Windows 10 之 控件(媒体类) ...
- 2019-11-20-WPF-使用-MyScript-的-IInk-做手写识别
title author date CreateTime categories WPF 使用 MyScript 的 IInk 做手写识别 lindexi 2019-11-20 08:18:26 +08 ...
- 【Win 10 应用开发】手写识别
记得前面(忘了是哪天写的,反正是前些天,请用力点击这里观看)老周讲了一个14393新增的控件,可以很轻松地结合InkCanvas来完成涂鸦.其实,InkCanvas除了涂鸦外,另一个大用途是墨迹识别, ...
- AI应用开发实战 - 手写识别应用入门
AI应用开发实战 - 手写识别应用入门 手写体识别的应用已经非常流行了,如输入法,图片中的文字识别等.但对于大多数开发人员来说,如何实现这样的一个应用,还是会感觉无从下手.本文从简单的MNIST训练出 ...
- (五) Keras Adam优化器以及CNN应用于手写识别
视频学习来源 https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553 笔记 Adam,常 ...
- densenet tensorflow 中文汉字手写识别
densenet 中文汉字手写识别,代码如下: import tensorflow as tf import os import random import math import tensorflo ...
- JS / Egret 单笔手写识别、手势识别
UnistrokeRecognizer 单笔手写识别.手势识别 UnistrokeRecognizer : https://github.com/RichLiu1023/UnistrokeRecogn ...
- (手写识别) Zinnia库及其实现方法研究
Zinnia库及其实现方法研究 (转) zinnia是一个开源的手写识别库.采用C++实现.具有手写识别,学习以及文字模型数据制作转换等功能. 项目地址 [http://zinnia.sourcefo ...
随机推荐
- 万事不求人系列之-智能点餐算法实现-JavaScript实现智能点餐
作为一个成长中的架构师,编码能力是万不能停止的,这个算法是之前在上一家单位帮助同事们自助订餐写的,纯爱好自己码敲的,刚好这段时间重新整理代码,发现了它,分享给大家,请大家品评指教. 使用场景介绍:随着 ...
- Ionic2实战——按模块划分app 创建多module
http://www.jianshu.com/p/d94324b722af 背景 用ionic2开发过一两个小功能的朋友都会发现,每新建一个页面都需要在\src\app\app.module.ts中添 ...
- 高德地图API获取天气
1.建立行政区规划清单表 use edw; drop table if exists dim_prov_city_adcode; create table if not exists dim_prov ...
- JVM理解
在阅读本文之前,先向大家强烈推荐一下周志明的<深入理解Java虚拟机>这本书. 前些天面试了阿里的实习生,问到关于Dalvik虚拟机能不能执行class文件,我当时的回答是不能,但是它执行 ...
- 求最大公因数(辗转相除法&更相减损术)
求最大公因数(辗转相除法&更相减损术) 辗转相除法 又名欧几里得算法 ,其原理其实是基于这个定理:\(gcd(a,b)=gcd(b,a\%b)\),详细证明,而任何数与0的最大公约数是它本身 ...
- 2.6 Rust Slice Type
字符串操作 fn first_word(s: &String) -> usize { let bytes = s.as_bytes(); for (i, &item) in by ...
- Yii2 PHPExcel在linux环境下导出报500错误
断点调试后发现是因为这句报错 header('Content-Type : application/vnd.ms-excel');删除后正常输出下载
- 记.net 遇到的几个bug
这两个bug都是查了挺久才查到的,随手记是个好习惯. 1.public static CultureInfo GetCultureInfo(string name); 方法,传参错误时,某些操作系统环 ...
- java多线程-ThreadLocal
大纲: 用法 源码 一.用法 ThreadLocal是一个容器,顾名思义就是把一个变量存到线程本地. class Test { public static void main(String[] arg ...
- Linux C代码 获取IP地址
Ubuntu 16.04下,可编译通过: #include <stdio.h> #include <ifaddrs.h> #include <arpa/inet.h> ...