Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Создание рукописного текста


Автор: THandle 1.6.2011, 16:38
Всем привет!

Имеется такая задача.
Есть пользователь программы. Он предоставляет ей сканы/фото/рисунки своего почерка - всех строчных и заглавных букв алфавита.
Есть какой-то текст(просто текст, в который входят буквы и какие то символы, которые скорее всего для всех общие).
Нужно этот печатный текст перевести в рукописный по заданному почерку, то есть фактически программно написать что-то вручную.
Нужно добиться хотя бы более менее человеческого результата(идеальность не требуется пока, в принципе).
Я никак не могу сообразить, как можно рассчитать связки между буквами. То есть как буквы будут соединяться друг с другом.
По идее в языке есть правила правописания таких соединений, но как программно это реализовать наилучшим и оптимальным образом я что-то пока не придумал.
Я так понимаю, нужны все возможные связки каждой буквы с каждой. Но заставлять пользователя предоставлять их нереально, так как их количество весьма велико(для каждой буквы, грубо говоря, 
32 связи с буквами такого же регистра, и 33 с другими).
Вот, собственно вопрос в том, никто не может дать совет как это осуществить наименее затратным и адекватным способом?

Спасибо.

Автор: DarkProg 1.6.2011, 19:46
В принципе существует такая вещь как статистика, по ней можно определить какие связки букв встречаются наиболее часто их и попросить у пользователя, остальные просто подставлять как есть...
Как известно люди по природе не могут сильно ровно писать, потому я бы взял сгенерировал бы некоторую кривую относительно которой буквы будут плясать и их бы лепил в соответствии с текстом, ещё кстати нужна примерная длина пробелов...

Ну вот что-то такое пришло на ум...

Автор: Sartorius 1.6.2011, 20:05
 Пользователь может отмечать точку начала написания буквы и конечную точку. (Если писать на тачскрине, это можно автоматом сделать) Их можно сплайном каким-нибудь соединять, что б пореалистичней было

Автор: Earnest 3.6.2011, 07:01
Вообще-то типов связок ограниченное число: вспомни первый класс, а лучше найди прописи да посмотри. Насколько помню, тип связки определяется первой буквой (т.е. ее хвостом). Так что "каноническую" рукопись наверняка построить не так сложно. Идея Sartoriusа представляется правильной: нужно хранить с какого штриха буква начинается и каким заканчивается, и связывать их.
Другое дело насчет связи с реальностью: мало кто так пишет, особенно сейчас, когда воообще писать разучились...

Автор: THandle 6.6.2011, 20:35
Цитата(Sartorius @  1.6.2011,  21:05 Найти цитируемый пост)
Пользователь может отмечать точку начала написания буквы и конечную точку. (Если писать на тачскрине, это можно автоматом сделать) Их можно сплайном каким-нибудь соединять, что б пореалистичней было 


Пытаюсь сейчас сделать этот вариант. Получается кривовато пока, но уже хоть что то) Спасибо за идею!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)