Структура Распознавателя Латтиса
Распознаватели, созданные для использования с Windows Vista и Windows XP Tablet PC Edition, используют набор структур, каждый из которых называется решеткой, для передачи результатов распознавания обратно в библиотеки платформы планшетного ПК. Платформа планшетного компьютера копирует сведения в этих структурах в объект IInkRecognitionResult, коллекцию IInkRecognitionAlternates и объект IInkRecognitionAlternate.
Указатель на решетку должен возвращаться распознавательом, когда платформа вызывает функцию GetLatticePtr в дескрипторе HRECOCONTEXT .
В этом разделе подробно описывается структура решеток. Общие сведения о распознавателях и связанных понятиях см. в разделе о распознавании рукописного ввода.
Распознаватель может найти несколько способов разбить набор рукописных штрихов на сегменты распознавания. То, что распознаватель использует в качестве сегмента распознавания, зависит от типа распознавателя. Распознаватели английского языка обычно используют слова в качестве сегмента распознавания. Другие распознаватели могут использовать символы, фигуры или жесты в качестве сегмента распознавания. Гибкость структур решеток позволяет логическому управлению большим количеством результатов распознавания, которые можно объединить в сложных отношениях.
Внутри распознаватели используют латтию для хранения базовых единиц распознавания для заданного фрагмента рукописного ввода. Решетка также содержит оценку или уровень достоверности для объединенного результата. Кроме того, решетка сохраняет сопоставление сегментов с исходными росчерками рукописного ввода.
Структуры решеток определяются в файле заголовка RecTypes.h. Решетчатые структуры включают следующие структуры:
В следующих примерах используются росчерки для слова "вместе", как показано на следующем рисунке. В примерах сегменты оцениваются как одно или несколько слов. Числа представляют отдельные штрихи в вычисляемом сегменте. Обратите внимание, что каждый из символов T содержит два штриха.
Решетка состоит из одного или нескольких столбцов, по одному для каждого сегмента. Каждый столбец, в свою очередь, содержит один или несколько элементов. Элемент содержит альтернативный дискретный распознавание. Дополнительные сведения о столбцах см. в RECO_LATTICE_COLUMN структуре. Дополнительные сведения об элементах см. в RECO_LATTICE_ELEMENT структуре.
Распознаватель может вернуть один сегмент при оценке примера рукописного ввода, показанного в предыдущем примере. В этом случае решетка содержит один столбец с одним элементом.
Более сложный пример представляет себя, когда распознаватель оценивает пример рукописного ввода и создает несколько сегментов и несколько альтернативных вариантов для каждого сегмента.
Число вариантов распознавания может быть ошеломляющим, даже для небольшого примера рукописного ввода. Например, "t o g e t h e r" может дать следующие результаты:
- "чтобы получить ее" (плюс альтернативные варианты для каждого слова)
- "собрать" (плюс альтернативные варианты для каждого слова)
- "чтобы получить ее" (плюс альтернативные варианты для каждого слова)
- "вместе" (плюс альтернативные варианты для слова)
В этом случае распознаватель может создать следующую структуру решеток.
Примечание
Каждый столбец использует одинаковый порядок штрихов, так как все они ссылаются на одну и ту же коллекцию InkStrokes.