2011-12-05 4 views
2

Я делаю проект для планшетных компьютеров, где пользователь будет писать уравнение, которое нужно решить.Как распознать математические символы с помощью классов распознавателей?

Проблема заключается в том, что классы распознавания, которые я использую, InkAnalyzer, не могут распознать знаки корня или любые другие математические знаки, которые я вводил. Есть ли способ добавить такую ​​функциональность?

В принципе, я хочу, чтобы моя программа функционировала так же, как панель ввода math, которая поставляется с окнами 7. О, и я код в C#.

+0

Вам нужно просто распознать математические символы? вы можете использовать регулярное выражение для этого – Yanshof

+0

, что вы имеете в виду? когда я делаю знак корня, распознаватель преобразует его в «Другой» или вопросительный знак (предположим, он выглядит одинаково). Мне нужно преобразовать вход, который пользователь записывает в знак корня компьютера, но я не знаю, как включить распознаватель, чтобы сделать это ...;) – YoungProgrammer

+0

Ха-ха, спасибо BalamBalam, но ваш комментарий не очень полезен. Я знаю, что мне нужно найти способ добавления наборов символов математики, но я не знаю, как это сделать. – YoungProgrammer

ответ

1

Я уверен, что это не то, что вы хотите услышать, но в принципе вы не можете этого сделать. По крайней мере, не без инсайдерской помощи в Microsoft. Чтобы облегчить это, вам нужно будет разработать свой собственный распознаватель языка. И, насколько я знаю, инструменты и документация для этого не предоставляются третьим сторонам.

Однако вы можете разработать собственную систему распознавания, которая использует существующую модель сбора чернил и штрихов, предоставляемую API-интерфейсом System.Windows.Ink, но она не будет подключаться к модели InkAnalyzer. Использование информации о штрихе даст гораздо лучшие результаты, чем простой тип системы OCR, где вы просто анализируете фигуры.

Было бы очень полезно, чтобы Microsoft раскрыла свои возможности синтаксического анализа в пространстве имен System.Windows.Ink, но, как только это получилось, Microsoft отказалась от таблеток. Затем iPad пришел и съел свой обед, и теперь, кто знает, увидим ли мы когда-нибудь больше внимания к вводу чернил.

2

Load ink to a MathInputControl in C#

Решение, предоставленное на странице описано, как программировать Math Input Control.

После того, как вы загрузили свой математический eqn в виде штрихов (вы можете получить их из InkCanvas Control - если вы не планируете читать его из другого места и не стройте штрихи) в Math Input Control через StylusPointCollection и сохраните их в классе StrokeCollection и передать его в файл ISF (Ink Serialized Format).

Автор решения поставляет файл ISF в Math Input Control. И еще одна работа связана с тем, чтобы вернуть решение - до этого управляя окном ввода Math и т. Д.