Skip to content

Instantly share code, notes, and snippets.

Created September 9, 2017 03:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/61ff44cc53cf6ad56700b0b6ba6986fd to your computer and use it in GitHub Desktop.
Save anonymous/61ff44cc53cf6ad56700b0b6ba6986fd to your computer and use it in GitHub Desktop.
Delphi распознавание текста

Delphi распознавание текста



ГиперХост — хостинг сайтов который Вы искали. Виртуальный хостинг, Аренда VPS серверов, Регистрация доменных имен, SSL сертификаты Все для Вашего сайта тут! Суперкомпьютер на основе блокчейна: Реализация простейшего алгоритма распознавания графических образов. Юрий Кисляков , Королевство Дельфи На написание данного материала меня подвигла одна, нередко встречающаяся в ответах на вопросы круглого стола, фраза: Это не для одиночек, и тем более не для начинающих нужна команда серьезных математиков и программистов. Что касается различных "know how", то вряд ли владеющий ими поделится с кем-либо. Такая информация стоит бооольших денег Вашему вниманию предлагается программа распознавания рукописных прописных русских букв и цифр на основе метода сравнения с эталонными изображениями соответствующих символов. Данный подход может быть использован для написания собственных модулей распознавания символов в том числе рукописных в разрабатываемом прикладном ПО. Ниже приведены основные моменты реализации предлагаемого алгоритма. Создание канвы для рисования и формирование ее образа в памяти. В качестве канвы используем класс TBitmap для простоты работы с битмапом используем режим 1 байт на пиксель, то есть TBitmap. Отображение осуществляем с использованием TBitmap. ScanLine быстро и просто: Height ; for j: Height - 1 do MasY[j]: Формирование массива эталонных образцов символов. Эталонные образцы будем формировать на основе матрицы размером 16х Для этого разработаем процедуру генерации такой матрицы по произвольному изображению эталона. TMas16x16 получает в качестве параметра ссылку на картинку, на которой нарисован эталон символа в нашем случае - программно , возвращает приведенную матрицу размером 16х Кратко поясним работу процедуры более полно см. Получаем ссылку на битмап и осуществляем его отображение в памяти см. Таким критерием был выбран общий процент заполнения - отношение количества значимых пикселей из которых состоит символ к общему количеству пикселей в описанном вокруг исходного изображения прямоугольнике. Данный параметр может влиять на качество распознавания, причем если он больше 1 для распознаваемого символа будет соответствовать меньшее количество возможных альтернатив, при значении меньшем 1 - наоборот. В нашем случае коэффициент поправки принят равным 0, Запоминаем относительные координаты кождой ячейки и приступаем к заполнению матрицы 16х Принимаем в качестве критерия общий процент заполнения. Если в анализируемой ячейке процент заполнения больше, чем общий процент - соответствующий элемент матрицы 16х16 устанавливается в 1, в противном случае - в 0. Остальная часть алгоритма касается вопросов рисования на TBitmap букв или цифр в цикле , запоминания в массиве матриц 16х16, соответствующих каждому эталонному символу см. Распознавание рисованных от руки символов. Распознавание осуществляем путем сравнения матрицы 16х16 распознаваемого символа с матрицей эталона путем перебора имеющихся в наличии. Сравнение производим поэлементно при помощи оператора XOR. Результат - матрица 16х16, содержащая единицы в местах несовпадений тест-символа и эталона. Путем подсчета количества несовпадений формируем вектор, содержащий эту информацию для каждого эталонного символа, и производим сортировку эго элементов по возрастанию количества несовпадений. Пример работы демонстрационной программы Сгенерируйте массив шаблонов для букв или цифр, используя конкретный шрифт Нарисуйте от руки произвольную букву русскую, прописную или цифру Нажмите на кнопку анализ Исследуйте результат Очистите окно и повторите пп. Данный алгоритм как простейший обладает рядом существенных ограничений. Для повышения точности распознавания отдельных символов не слов, - это другая задача, в каком-то смысле более простая , необходимо проводить дополнительный анализ значимых признаков, например симметричность образа горизонтальная, вертикальная , наличие замкнутых областей О, В, Д, Р и др. Буду рад, если этот материал кому-то пригодится. К материалу прилагаются файлы: Исходные коды проекта 5. Ru поможет оплатить штрафы ГИБДД PR-акции, размещение рекламы — adv citforum. Пресс-релизы — pr citforum. Обратная связь Информация для авторов. Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.


Саша я тебя люблю стихи
Поздравления с днем рождения женщине до слез
forum стихи евгения евтушенко
Виды примеры пробелов в праве
Расписание врачей нижнекамск
Игра фифа скачать на компьютер торрент
Томаты абрикос описание
кемя хочубыть тест
Гта са моды машина на графику
калач на дону москва расписание автобусов
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment