2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 137
1

Распознавание букв

09.10.2013, 21:45. Показов 3148. Ответов 1
Метки нет (Все метки)

Есть программа для распознавания нарисованных букв русского алфавита и цифр:
OCR.rar

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TFormDemo.BCharsClick(Sender: TObject);
var
  i : integer;
begin
  iSymbol := 1;
  SetLength(MasSimple16, 32*SizeOf(TMas16x16));     // âûäåëÿåì ïàìÿòü ïîä áóêâû îò À äî ß
  for i := 0 to 31 do
  with Img.Canvas do
  begin
    Brush.Color := clWhite;                         // î÷èùàåì...
    Pen.Color := clWhite;
    Rectangle(0,0,Img.Width,Img.Height);
    Pen.Color := clBlack;
    Font.Color := clBlack;
    Font.Size := FD.Font.Size;
    Font.Style := FD.Font.Style;
    Font.Name := FD.Font.Name;
    Img.Canvas.TextOut(10, 10, CHR(ORD('À')+i));   // ðèñóåì
    MasSimple16[i] := Create_16x16(Img);           // ñîçäàåì øàáëîí äëÿ i-ãî ñèìâîëà
  end;
  BClear.Click;                                    // î÷èùàåì
  MessageBox(handle, 'Ìàòðèöà øàáëîíîâ ñîçäàíà. Íàðèñóéòå îáðàç äëÿ ðàñïîçíàâàíèÿ è íàæìèòå "Àíàëèç".', 'ÎÊ!', MB_OK or MB_ICONInformation);
end;
Здесь, я так понял, создается шаблон букв русского алфавита с которым будем сравнивать то, что мы нарисовали.
Мне нужно создать шаблон английского алфавита.
Я понимаю, что нужно менять размер массива букв (кол-во букв), но дальше не пойму как сделать. Подскажите пожалуйста.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2013, 21:45
Ответы с готовыми решениями:

Автомобильные номера состоят из 1,2, или 3 букв и 4 цифр. используется 30 букв, найти число таких букв
Автомобильные номера состоят из 1,2, или 3 букв и 4 цифр. используется 30 букв, найти число таких...

Извлечение слов и их распределение на категории: из русс. букв, из англ. букв, из русс. и англ. букв, слова схожие по начертанию букв с русс и англ.
В тексте содержатся русские и англ слова. разделить все слова на 3 списка: русские слова, англ...

Составить программу подсчета и сравнения количества букв «А» и букв «О» с учетом регистра
Составить программу подсчета и сравнения количества букв «А» и букв «О» с учетом регистра...

Дан текст из строчных русских букв. Подсчитать количество гласных букв в тексте
Дан текст из строчных русских букв. Подсчитать количество гласных букв в тексте.

1
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 137
09.10.2013, 22:00  [ТС] 2
создать шаблон английского алфавита у меня получилось (создал для этого кнопку Button1):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TFormDemo.Button1Click(Sender: TObject);
var
  i : integer;
begin
  iSymbol := 3;
  SetLength(MasSimple16, 26*SizeOf(TMas16x16));     // âûäåëÿåì ïàìÿòü ïîä áóêâû îò A äî Z
  for i := 0 to 25 do
  with Img.Canvas do
  begin
    Brush.Color := clWhite;                         // î÷èùàåì...
    Pen.Color := clWhite;
    Rectangle(0,0,Img.Width,Img.Height);
    Pen.Color := clBlack;
    Font.Color := clBlack;
    Font.Size := FD.Font.Size;
    Font.Style := FD.Font.Style;
    Font.Name := FD.Font.Name;
    Img.Canvas.TextOut(10, 10, CHR(ORD('A')+i));   // ðèñóåì
    MasSimple16[i] := Create_16x16(Img);           // ñîçäàåì øàáëîí äëÿ i-ãî ñèìâîëà
  end;
  BClear.Click;                                    // î÷èùàåì
  MessageBox(handle, 'Ìàòðèöà øàáëîíîâ ñîçäàíà. Íàðèñóéòå îáðàç äëÿ ðàñïîçíàâàíèÿ è íàæìèòå "Àíàëèç".', 'ÎÊ!', MB_OK or MB_ICONInformation);
end;
а в процедуре
Delphi
1
procedure TFormDemo.BAnalyzeClick(Sender: TObject);
добавил в конце еще один else...if:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
else
  if iSymbol = 3 then             
    for i := 0 to 25 do
    begin
      nMax := 255;
      iMin := 0;
      for k := 0 to 25 do
      if Res[k] < nMax then
      begin
        iMin := k;
        nMax := Res[k];
      end;
      LBResult.Items.Add(CHR(ORD('A') + iMin) + '     ' + inttostr(round(100*(1 - Res[iMin] / 256)))+'%');
      Res[iMin] := 255;
    end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2013, 22:00

Количество букв в поле edit (именно букв)
Всем привет! Скажите, как проверить поле edit на буквы? Именно на буквы. То есть, если в поле...

Совпадение букв двух слов.Перестановкой букв
Задание выглядит так: Ввести два слова.Выяснить можно ли получить второе слово с букв первого...

Распознавание капчи
Необходимо написать программу которая будет распознавать простенькую капчу, что-то типо приведённых...

Распознавание пикселя
procedure TForm1.Button1Click(Sender: TObject); var p:Tcolor; i,j:integer; bit:TBitmap; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.