RecognitionAlternate.ConfidenceAlternates 属性
获取将当前备选项 拆分为更小备选项集合时所经过的备选项集合。
命名空间: Microsoft.Ink
程序集: Microsoft.Ink(在 Microsoft.Ink.dll 中)
语法
声明
Public ReadOnly Property ConfidenceAlternates As RecognitionAlternates
用法
Dim instance As RecognitionAlternate
Dim value As RecognitionAlternates
value = instance.ConfidenceAlternates
public RecognitionAlternates ConfidenceAlternates { get; }
public:
property RecognitionAlternates^ ConfidenceAlternates {
RecognitionAlternates^ get ();
}
/** @property */
public RecognitionAlternates get_ConfidenceAlternates()
public function get ConfidenceAlternates () : RecognitionAlternates
属性值
类型:Microsoft.Ink.RecognitionAlternates
沿置信级别边界将当前备选项 拆分为备选项集合所经过的备选项组成的集合。
备注
根据置信级别所形成的边界将备选项拆分为更小的备选项时,会创建 ConfidenceAlternates 属性中的集合。集合中的每个备选项均由具有相同置信级别的相邻识别段 组成。
此属性的功能相当于在 g 参数设置为全局唯一标识符 (GUID) ConfidenceLevel 的情况下调用 AlternatesWithConstantPropertyValues 方法。有关备选项的属性的更多信息,请参见 RecognitionProperty 对象。
备注
如果生成 RecognitionAlternate 的 Recognizer 不支持置信级别,则此属性会引发异常。
在 Microsoft(R) 识别器中,仅 Microsoft 英语 (US) 手写识别器和 Microsoft 笔势识别器支持置信级别。第三方识别器可能支持也可能不支持置信级别。
示例
此 C# 示例定义窗体 ConfidenceAlternatesForm 的事件处理程序,该窗体中已添加了 Button 控件 theButton。此示例还定义一个 InkCollector (theInkCollector)、一个 RecognizerContext (theRecognizerContext) 和一个 RecognitionResult (theRecognitionResult),用于收集墨迹和执行识别。
窗体的加载事件的事件处理程序创建墨迹收集器并获取英语 (US) 语言的识别器上下文。
按钮的单击事件的事件处理程序对墨迹收集器中的笔画执行识别,沿置信边界划分笔画,然后根据其置信级别对笔画着色。
[C#]
// Declare ink elements and create drawing attributes.
Microsoft.Ink.InkCollector theInkCollector = null;
Microsoft.Ink.RecognizerContext theRecognizerContext = null;
Microsoft.Ink.RecognitionResult theRecognitionResult = null;
Microsoft.Ink.DrawingAttributes theStrongDA =
new DrawingAttributes(Color.Green);
Microsoft.Ink.DrawingAttributes theIntermediateDA =
new DrawingAttributes(Color.Goldenrod);
Microsoft.Ink.DrawingAttributes thePoorDA =
new DrawingAttributes(Color.Red);
// Event handler for the form's Load event.
private void ConfidenceAlternatesForm_Load(object sender, System.EventArgs e)
{
// Create the ink collector.
this.theInkCollector = new Microsoft.Ink.InkCollector(this.Handle);
this.theInkCollector.Enabled = true;
// Get a recognizer context for the English (US) recognizer.
foreach (Recognizer theRecognizer in new Recognizers())
{
foreach (short lcid in theRecognizer.Languages)
{
// 0409 is the LCID for the en-us language.
if (0x0409 == lcid)
{
this.theRecognizerContext = theRecognizer.CreateRecognizerContext();
break;
}
}
if (null != theRecognizerContext)
{
break;
}
}
// Throw an exception if the recognizer is not found.
if (null == theRecognizerContext)
{
throw new ApplicationException("No recognizer found");
}
}
// Event handler for the button's Click event.
private void theButton_Click(object sender, System.EventArgs e)
{
// Check for ink before performing recognition.
if (0 == this.theInkCollector.Ink.Strokes.Count)
{
System.Windows.Forms.MessageBox.Show("No ink to recognize.");
return;
}
// Perform recognition on the strokes currently in the ink collector.
Microsoft.Ink.RecognitionStatus theRecognitionStatus;
this.theRecognizerContext.Strokes = this.theInkCollector.Ink.Strokes;
this.theRecognitionResult =
this.theRecognizerContext.Recognize(out theRecognitionStatus);
// Check the recognition status.
if (Microsoft.Ink.RecognitionStatus.NoError != theRecognitionStatus)
{
System.Windows.Forms.MessageBox.Show(
"There was an error recognizing the ink.");
return;
}
// Check for a recognition result.
if (null == this.theRecognitionResult)
{
System.Windows.Forms.MessageBox.Show(
"No recognition result available.");
return;
}
// Get the confidence alternates collection for the top alternate.
Microsoft.Ink.RecognitionAlternates theConfidenceAlternates =
this.theRecognitionResult.TopAlternate.ConfidenceAlternates;
using (System.Drawing.Graphics g = this.CreateGraphics())
{
// Clear the drawing surface
g.Clear(this.BackColor);
// For each confidence alternate in the collection:
foreach(Microsoft.Ink.RecognitionAlternate theAlternate
in theConfidenceAlternates)
{
// Update the drawing attributes.
switch (theAlternate.Confidence)
{
case Microsoft.Ink.RecognitionConfidence.Strong:
theAlternate.Strokes.ModifyDrawingAttributes(
theStrongDA);
break;
case Microsoft.Ink.RecognitionConfidence.Intermediate:
theAlternate.Strokes.ModifyDrawingAttributes(
theIntermediateDA);
break;
case Microsoft.Ink.RecognitionConfidence.Poor:
theAlternate.Strokes.ModifyDrawingAttributes(
thePoorDA);
break;
}
}
// Redraw the ink.
this.theInkCollector.Renderer.Draw(g, this.theRecognitionResult.Strokes);
}
}
// Event handler for the form's Closed event.
private void ConfidenceAlternatesForm_Closed(object sender, System.EventArgs e)
{
// Free the resources for the ink collector, recognizer context, and pens.
this.theInkCollector.Dispose();
this.theInkCollector = null;
this.theRecognizerContext.Dispose();
this.theRecognizerContext = null;
}
此 Microsoft Visual Basic(R) .NET 示例定义窗体 ConfidenceAlternatesForm 的事件处理程序,该窗体中已添加了 Button 控件 theButton。此示例还定义一个 InkCollector (theInkCollector)、一个 RecognizerContext (theRecognizerContext) 和一个 RecognitionResult (theRecognitionResult),用于收集墨迹和执行识别。
窗体的加载事件的事件处理程序创建墨迹收集器并获取英语 (US) 语言的识别器上下文。
按钮的单击事件的事件处理程序对墨迹收集器中的笔画执行识别,沿置信边界划分笔画,然后根据其置信级别对笔画着色。
[Visual Basic]
' Declare ink elements and create drawing attributes.
Dim theInkCollector As Microsoft.Ink.InkCollector
Dim theRecognizerContext As Microsoft.Ink.RecognizerContext
Dim theRecognitionResult As Microsoft.Ink.RecognitionResult
Dim theStrongDA As Microsoft.Ink.DrawingAttributes = New DrawingAttributes(Color.Green)
Dim theIntermediateDA As Microsoft.Ink.DrawingAttributes = New DrawingAttributes(Color.Goldenrod)
Dim thePoorDA As Microsoft.Ink.DrawingAttributes = New DrawingAttributes(Color.Red)
' Event handler for the form's Load event.
Private Sub ConfidenceAlternatesForm_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' Create the ink collector.
Me.theInkCollector = New Microsoft.Ink.InkCollector(Me.Handle)
Me.theInkCollector.Enabled = True
' Get a recognizer context for the English (US) recognizer.
For Each theRecognizer As Recognizer In New Recognizers
For Each lcid As Short In theRecognizer.Languages
' 0409 is the LCID for the en-us language.
If &H409 = lcid Then
Me.theRecognizerContext = theRecognizer.CreateRecognizerContext()
Exit For
End If
Next
If Not (theRecognizerContext Is Nothing) Then
Exit For
End If
Next
' Throw an exception if the recognizer is not found.
If theRecognizerContext Is Nothing Then
Throw New ApplicationException("No recognizer found")
End If
End Sub
' Event handler for the "Recognize" button's Click event.
Private Sub theButton_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles theButton.Click
' Check for ink before performing recognition.
If Me.theInkCollector.Ink.Strokes.Count = 0 Then
System.Windows.Forms.MessageBox.Show("No ink to recognize.")
Return
End If
' Perform recognition on the strokes currently in the ink collector.
Dim theRecognitionStatus As Microsoft.Ink.RecognitionStatus
Me.theRecognizerContext.Strokes = Me.theInkCollector.Ink.Strokes
Me.theRecognitionResult = _
Me.theRecognizerContext.Recognize(theRecognitionStatus)
' Check for a recognition result.
If (Me.theRecognitionResult Is Nothing) Then
System.Windows.Forms.MessageBox.Show("No recognition result available.")
Return
End If
' Get the confidence alternates collection for the top alternate.
Dim theConfidenceAlternates As Microsoft.Ink.RecognitionAlternates = _
Me.theRecognitionResult.TopAlternate.ConfidenceAlternates
' Create a temporary graphics object.
Dim g As System.Drawing.Graphics = Me.CreateGraphics()
' Clear the drawing surface
g.Clear(Me.BackColor)
' For each confidence alternate in the collection:
For Each theAlternate As Microsoft.Ink.RecognitionAlternate _
In theConfidenceAlternates
' Update the drawing attributes.
Select Case theAlternate.Confidence
Case RecognitionConfidence.Strong
theAlternate.Strokes.ModifyDrawingAttributes(theStrongDA)
Case RecognitionConfidence.Intermediate
theAlternate.Strokes.ModifyDrawingAttributes(theIntermediateDA)
Case RecognitionConfidence.Poor
theAlternate.Strokes.ModifyDrawingAttributes(thePoorDA)
End Select
Next
' Redraw the ink.
Me.theInkCollector.Renderer.Draw(g, Me.theRecognitionResult.Strokes)
' Dispose of the graphics object.
g.Dispose()
End Sub
' Event handler for the form's Closed event.
Private Sub ConfidenceAlternatesForm_Closed(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Closed
' Free the resources for the ink collector and recognizer context.
Me.theInkCollector.Dispose()
Me.theInkCollector = Nothing
Me.theRecognizerContext.Dispose()
Me.theRecognizerContext = Nothing
End Sub
平台
Windows Vista
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
版本信息
.NET Framework
受以下版本支持:3.0
另请参见
参考
RecognitionAlternate.AlternatesWithConstantPropertyValues