Всем доброго времени суток. Что то тут все свои мыла оставляют, а обсуждение толком не идёт, жаль.
Вобщем с недавного времени заразился идеей распознования Искажённых машинопечатных символов в условии сильного шума. Поднял инфу по этой теме, начал разбираться.
Для себя разбил весь процесс на несколько этапов:
1. Бинаризация избражения.
2. Подавление шума путём нормализции картинки.
3. Сегментация. По этому поводу тоже затруднение. Шум может соединять сразу 2 буквы. Пока что, по ламерки, определил так. Объект сканируется слева на право и сверху вниз. Отделяется фон от текста. Берётся первый левый верхний пиксель буквы сканиуется по контору до того момента пока не прийдёт в исходную точку. Получаем координаты крайних левой правой верхней и нижней точки символа.
4. Векторизация изображения. Ввыиду своей неграмотности в данном вопросе начал изобретать велосипед. Взял понятие вектора, порадил понятие слом вектора(если угол между предыдущим пикселем и текущим больше определённого значения, значит начался новый вектор, если меньше, значит продолжается предыдуший). Каждая буква состоит из опреденённого количества векторов, углов между этими векторами, все вектора имеют определённое соотношение длины(+ - ошибка), средней ширины вектора(+ - отклонение) и узловых точек(точки где заканчивается один вектор и начинается другой). Параметр угла между векторами даёт нам возможность принять искажённую часть символа за один вектор и так же легко идентифицировать например букву "С". Средняя "ширина" вектора поможет отфильтровать основной шум.
5. Составляется таблица признаков для каждого символа.
Для распознования образов выбрал нейросеть "неокогнитрон". Посмотрите пожалуйста, в правльном ли направлении я иду и что делать дальше. К тому же хотелось бы увидеть пример неокогнитрона в исходнике.
Зарание спасибо за помощь.