Compartir a través de


RecognitionAlternate.GetPropertyValue (Método)

Actualización: noviembre 2007

Devuelve el valor de un objeto RecognitionProperty especificado del objeto RecognitionAlternate.

Espacio de nombres:  Microsoft.Ink
Ensamblado:  Microsoft.Ink (en Microsoft.Ink.dll)

Sintaxis

'Declaración
Public Function GetPropertyValue ( _
    g As Guid _
) As Byte()
'Uso
Dim instance As RecognitionAlternate
Dim g As Guid
Dim returnValue As Byte()

returnValue = instance.GetPropertyValue(g)
public byte[] GetPropertyValue(
    Guid g
)
public:
array<unsigned char>^ GetPropertyValue(
    Guid g
)
public byte[] GetPropertyValue(
    Guid g
)
public function GetPropertyValue(
    g : Guid
) : byte[]

Parámetros

  • g
    Tipo: System.Guid
    Propiedad de la alternativa que se va a devolver, como un identificador único global (GUID) para uno de los campos en el objeto RecognitionProperty.

Valor devuelto

Tipo: array<System.Byte[]
Devuelve el valor del tipo de propiedad en el formulario de una matriz de bytes. El valor devuelto se interpreta de manera diferente para cada tipo de propiedad.

Comentarios

Utilice este método para obtener los valores de propiedad de los objetos RecognitionProperty que no tienen ninguna propiedad de aplicación auxiliar correspondiente en el objeto RecognitionAlternate. Las propiedades de aplicación auxiliar en el objeto RecognitionAlternate incluyen propiedades LineNumber y Confidence.

En la tabla siguiente se describe el tipo de valor devuelto en la matriz de bytes.

Tipo RecognitionProperty

Descripción

ConfidenceLevel

Valor de la enumeración RecognitionConfidence

HotPoint

Objeto Point

LineMetrics

Equivale a la estructura LATTICE_METRICS Structure

LineNumber

Valor Int32.

MaximumStrokeCount

No se utiliza

PointsPerInch

No se utiliza

Segmentación

No se utiliza. Utilice en su lugar el método AlternatesWithConstantPropertyValues.

Para saber qué propiedades Recognizer se exponen en la alternativa, utilice primero la propiedad SupportedProperties para ver qué propiedades pueden estar disponibles. Estas propiedades se pueden pasar o no en el objeto RecognitionAlternate. A continuación, utilice el método GetPropertyValue para determinar qué propiedades se exponen en el objeto RecognitionAlternate.

Nota

No todas las propiedades Recognizer se pasan al objeto RecognitionAlternate. Por ejemplo, el reconocedor de movimientos de Microsoft® expone la propiedad HotPoint que sólo se puede consultar a través de la propiedad SupportedProperties. La propiedad HotPoint no se expone en un objeto RecognitionAlternate.

Ejemplos

En este ejemplo de C# se muestra la línea base utilizada en el reconocimiento de una colección Strokes. El método GetPropertyValue obtiene la métrica de línea de la alternativa principal. A continuación, el objeto Renderer asociado a un objeto InkOverlay, theInkOverlay, se utiliza para convertir la coordenadas espaciales de entrada manuscrita en coordenadas en píxeles. Por último, la línea base se dibuja en verde. En este ejemplo se supone que ya ha comprobado la propiedad SupportedProperties para asegurarse de que se admite la propiedad LineMetrics.

[C#]

using Microsoft.Ink;
using System.Drawing.Drawing2D;
using System.IO;
//...
    private void DrawBaseline(Strokes theStrokes)
    {
        // Get the top alternate for all the strokes
        RecognizerContext context = new RecognizerContext();
        context.Strokes = theStrokes;
        RecognitionStatus status = new RecognitionStatus();
        RecognitionResult result = context.Recognize(out status);
        RecognitionAlternate topAlternate = result.TopAlternate;

        // Get the line metrics from the top alternate
        byte [] byteArray = topAlternate.GetPropertyValue(RecognitionProperty.LineMetrics);
        using (MemoryStream stream = new MemoryStream(byteArray))
        using (BinaryReader reader = new BinaryReader(stream))
        {
            int startX = reader.ReadInt32();
            int startY = reader.ReadInt32();
            int endX = reader.ReadInt32();
            int endY = reader.ReadInt32();

            // Convert baseline to pixel coordinates
            Graphics tempGraphics = CreateGraphics();
            Point startPoint = new Point(startX, startY);
            Point endPoint = new Point(endX, endY);
            theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, ref startPoint);
            theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, ref endPoint);
            tempGraphics.DrawLine(new Pen(Color.Green), startPoint, endPoint);

            // Dispose of temporary graphics
            tempGraphics.Dispose();
        }
    }

En este ejemplo de Microsoft Visual Basic® .NET se muestra la línea base utilizada en el reconocimiento de una colección Strokes. El método GetPropertyValue obtiene la métrica de línea de la alternativa principal. A continuación, el objeto Renderer asociado a un objeto InkOverlay, theInkOverlay, se utiliza para convertir la coordenadas espaciales de entrada manuscrita en coordenadas en píxeles. Por último, la línea base se dibuja en verde. En este ejemplo se supone que ya ha comprobado la propiedad SupportedProperties para asegurarse de que se admite la propiedad LineMetrics.

[Visual Basic]

Imports Microsoft.Ink
Imports System.Drawing.Drawing2D
Imports System.IO
'...
    Private Sub DrawBaseline(ByVal theStrokes As Strokes)
        ' Get the top alternate for all the strokes
        Dim context As New RecognizerContext()
        context.Strokes = theStrokes
        Dim status As New RecognitionStatus()
        Dim result As RecognitionResult = context.Recognize(status)
        Dim topAlternate As RecognitionAlternate = result.TopAlternate

        ' Get the line metrics from the top alternate
        Dim byteArray() As Byte = topAlternate.GetPropertyValue(RecognitionProperty.LineMetrics)
        Dim stream As New MemoryStream(byteArray)
        Dim reader As New BinaryReader(stream)

        Dim startX As Integer = reader.ReadInt32()
        Dim startY As Integer = reader.ReadInt32()
        Dim endX As Integer = reader.ReadInt32()
        Dim endY As Integer = reader.ReadInt32()

        ' Convert baseline to pixel coordinates
        Dim tempGraphics As Graphics = CreateGraphics()
        Dim startPoint As New Point(startX, startY)
        Dim endPoint As New Point(endX, endY)
        theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, startPoint)
        theInkOverlay.Renderer.InkSpaceToPixel(tempGraphics, endPoint)
        tempGraphics.DrawLine(New Pen(Color.Green), startPoint, endPoint)

        ' Clean up
        tempGraphics.Dispose()
        reader.Close()
        stream.Close()
    End Sub

Plataformas

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Información de versión

.NET Framework

Compatible con: 3.0

Vea también

Referencia

RecognitionAlternate (Clase)

RecognitionAlternate (Miembros)

Microsoft.Ink (Espacio de nombres)

RecognitionAlternate.AlternatesWithConstantPropertyValues

RecognitionProperty