Программа распознавания символов  : Информатика - на REFLIST.RU

Программа распознавания символов : Информатика - на REFLIST.RU

Система поиска www.RefList.ru позволяет искать по собственной базе из 9 тысяч рефератов, курсовых, дипломов, а также по другим рефератным и студенческим сайтам.
Общее число документов более 50 тысяч .

рефераты, курсовые, дипломы главная
рефераты, курсовые, дипломы поиск
запомнить сайт
добавить в избранное
книжная витрина
пишите нам
  Ссылки:
Иордания из Челябинска
Список категорий документа Информатика
Программа распознавания символов

Программа распознавания символов

комп-ры, символов, распознавания, графика, Программирование и комп-ры, OSR, Программирование, машинная, Программа распознавания символов, распознавание, Программа, OSR машинная графика распознавание Ключевые слова
страницы: 1  2  3  4 
Текущая страница: 1


Белорусский Государственный Университет Информатики и Радиоэлектроники.

















Контрольная работа

по дисциплине

«МАГИ»


«Программа распознавания символов»


















Выполнил студент группы 500501
Балахонов Е.В.
Задание.


Требуется написать программу, способную распознавать графически представленные символы в виде растрового изображения и преобразовывать в обычный текст.
платформа: Win32,
формат графического изображения: Windows Bitmap (BMP), 8 бит,
шрифт для распознавания: Arial, 16


Выбор средств разработки.


В качестве среды разработки будет использоваться Borland C++ Builder 5.

Распознавание символов.


Этап 1. Выделение контура объекта, определение его границ.

В качестве алгоритма выделения контуров будем использовать алгоритм жука.
Общее описание алгоритма.

Отслеживающие алгоритмы основаны на том, что на изображении отыскивается объект (первая встретившаяся точка объекта) и контур объекта отслеживается и векторизуется. Достоинством данных алгоритмов является их простота, к недостаткам можно отнести их последовательную реализацию и некоторую сложность при поиске и обработке внутренних контуров. Пример отслеживающего алгоритма - "алгоритма жука" - приведен на рис. 5.12. Жук начинает движение с белой области по направлению к черной, Как только он попадает на черный элемент, он поворачивает налево и переходит к следующему элементу. Если этот элемент белый, то жук поворачивается направо, иначе - налево. Процедура повторяется до тех пор, пока жук не вернется в исходную точку. Координаты точек перехода с черного на белое и с белого на черное и описывают границу объекта.
На рис. 1 показана схема работы такого алгоритма.

Рис. 1. Схема работы отслеживающего алгоритма «жука».



Этап 2. Построение на основе контура объекта скелетной линии.

При нахождении новой точки контура, рассчитывается расстояние между предыдущей найденной точкой и новой. Если оно превышает некоторую границу (по умолчанию в 5 единиц), она запоминается. К концу построения скелетной линии программа имеет массив координат вершин ломаной, которая является скелетной линией объекта.

Этап 3. Сравнение полученной скелетной линии с списком шаблонов.

После построения скелетной линии производится сравнение ее с списком шаблонов известных символов. При нахождении совпадения, программа записывает в строку найденный символ.


Исходный текст программы.


//---------------------------------------------------------------------------

#include
#pragma hdrstop

#include
#include
#include "ChildFormUnit.h"
#include "MainFormUnit.h"
#include "AverageFilterDialogFormUnit.h"
#include "OSRFormUnit.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TChildForm *ChildForm;
TTemplates Templates;
//---------------------------------------------------------------------------
__fastcall TChildForm::TChildForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
bool __fastcall TChildForm::LoadImage(AnsiString FileName)
{
try
{
Image1->Picture->LoadFromFile(FileName);
}
catch (EInvalidGraphic& Exception)
{
AnsiString Error = "Ошибка загрузки файла изображения! Ошибка системы: ";
Error += Exception.Message;
MessageBox(this->Handle, Error.c_str(), "Ошибка", MB_OK | MB_ICONERROR);
return false;
}

if (Image1->Picture->Bitmap->PixelFormat != pf8bit)
{
MessageBox(Handle,"Такой формат файла пока не подерживается...",
"Слабоват я пока...",MB_OK | MB_ICONSTOP | MB_APPLMODAL);
return false;
}

return true;
}
//---------------------------------------------------------------------------
void __fastcall TChildForm::FormClose(TObject *Sender,
TCloseAction &Action)
{
MainForm->DeleteActiveChildForm();
}
//---------------------------------------------------------------------------
void __fastcall TChildForm::AverageFilter()
{
AverageFilterDialogForm = new TAverageFilterDialogForm(this);
if (AverageFilterDialogForm->ShowModal() == mrCancel)
{
delete AverageFilterDialogForm;
return;
}

int Value = atoi(AverageFilterDialogForm->Edit1->Text.c_str());

delete AverageFilterDialogForm;

Byte* PrevisionLine = NULL;
Byte* CurrentLine = NULL;
Byte* NextLine = NULL;
int I = 0, J = 0;
int Summ = 0;

for (I = 0; I <= Image1->Picture->Bitmap->Height - 1; I++)
{
CurrentLine = (Byte*)Image1->Picture->Bitmap->ScanLine[I];
for (J = 0; J <= Image1->Picture->Bitmap->Width - 1; J++)
{
Summ = 0;

if (I > 0)
{
PrevisionLine = (Byte*)Image1->Picture->Bitmap->ScanLine[I - 1];
if (J > 0)
{
Summ += PrevisionLine[J - 1];
}

Summ = Summ + PrevisionLine[J];

if (J + 1 < Image1->Picture->Bitmap->Width)
{
Summ += PrevisionLine[J + 1];
}
}

if (J > 0)
{
Summ += CurrentLine[J - 1];
}

Summ += CurrentLine[J];

if (J + 1 < Image1->Picture->Bitmap->Width)
{
Summ += CurrentLine[J + 1];



Текущая страница: 1

страницы: 1  2  3  4 
Список предметов Предмет: Информатика
Программа распознавания символов Тема: Программа распознавания символов
комп-ры, символов, распознавания, графика, Программирование и комп-ры, OSR, Программирование, машинная, Программа распознавания символов, распознавание, Программа, OSR машинная графика распознавание Ключевые слова: комп-ры, символов, распознавания, графика, Программирование и комп-ры, OSR, Программирование, машинная, Программа распознавания символов, распознавание, Программа, OSR машинная графика распознавание
   Книги:


Copyright c 2003 REFLIST.RU
All right reserved. liveinternet.ru

поиск рефератов запомнить сайт добавить в избранное пишите нам