2
2
Copyright (c) 1993-2008, Cognitive Technologies
5
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
8
* ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
���� ����������� �� ��������� �����, ���� ������ ������� � �����������
11
* ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
������ ����������, ������������ ��� ���������������, ������ �����������
13
��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
����������� ����� �� ��������.
15
* �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
���� ������������ � �������� �������� ��������� �/��� �����������
17
���������, ���������� �� ���� ��, ��� ���������������� �����������
20
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
������������� ������, ��������� � �������������� ��� ���������� ����������
27
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
5
Разрешается повторное распространение и использование как в виде исходного кода,
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
8
* При повторном распространении исходного кода должны оставаться указанное
9
выше уведомление об авторском праве, этот список условий и последующий
11
* При повторном распространении двоичного кода в документации и/или в
12
других материалах, поставляемых при распространении, должны сохраняться
13
указанная выше информация об авторском праве, этот список условий и
14
последующий отказ от гарантий.
15
* Ни название Cognitive Technologies, ни имена ее сотрудников не могут
16
быть использованы в качестве средства поддержки и/или продвижения
17
продуктов, основанных на этом ПО, без предварительного письменного
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
33
33
Redistribution and use in source and binary forms, with or without modification,
34
34
are permitted provided that the following conditions are met:
95
95
void AM_MakeTreeRules_VerifLines (Handle parent)
98
/* �������� ������� */
98
/* Корневая вершина */
100
\n �������� ������� ������ �������� [����������� �����] ���������� 'RLTABLE'. \
101
\n ��� ����� ��������� ��� �������������� ������� : \
102
\n (I) ����������� ���������� ����������� 'RLINE' ����� \
103
\n (II) ������������� '���� ������������ �����' ��� ������� ������, ����� \
104
\n ����� ���� �������� � ���������� �������� \
105
\n ��� ������� ��������� �����. \
106
\n �������� ������� ������� ����� ���� �����: \
107
\n a) '������� ������' \
108
\n �) '���������� ������' \
109
\n �) '�������� ������' \
112
\n ���� �) �) � �) ������������� ��� ������ ������������. ��� ������������ \
113
������������ � ������� ���� ������ ���������� � ������� � �������� ������ \
114
����������, � ����� ������ �� ������� ��������� ����������� ������, \
115
����������� � ������ �������� ��� ���������� ���������. \
116
\n ���� �) ������������ ��� ���������� ����������� ����������. \
117
\n ���� �) ������������ ��� ������������ ����������. \
100
\n Корневая вершина первой половины [верификация линий] библиотеки 'RLTABLE'. \
101
\n Эта часть реализует две содержательные функции : \
102
\n (I) верификацию выделенных библиотекой 'RLINE' линий \
103
\n (II) моделирование 'пула спасительных даных' для каждого случая, когда \
104
\n линия была выделена с фатальными ошибками \
105
\n Обе функции одинаково важны. \
106
\n Корневая вершина отладки имеет пять узлов: \
107
\n a) 'Входные данные' \
108
\n б) 'Результаты работы' \
109
\n в) 'Контроль работы' \
112
\n Узлы а) б) и в) предназначены для службы тестирования. Они обеспечивают \
113
визуализацию в главном окне полной информации о входных и выходных данных \
114
библиотеки, а также печать на консоль подробной диагностики ошибок, \
115
неточностей и редких ситуаций при исполнении программы. \
116
\n Узел г) предназначен для управления алгоритмами библиотеки. \
117
\n Узел д) предназначен для разработчика библиотеки. \
118
118
\n Almi 26.05.99";
119
119
AM_RegiHelp (parent, pText, TRUE);
121
AM_RegiVert (&VL_Into, "������� ������ /��/", parent);
121
AM_RegiVert (&VL_Into, "Входные данные /ВЛ/", parent);
123
\n �������� ������� ��� ���� ����� ���������� 'RLTABLE' �������� : \
125
\n - ������� ��������� \
123
\n Входными данными для этой части библиотеки 'RLTABLE' являются : \
125
\n - коробки компонент \
126
126
\n Almi 26.05.99";
127
127
AM_RegiHelp (VL_Into, pText, FALSE);
128
AM_RegiVert (&VL_I_PrimLines, "����� /��/", VL_Into);
129
AM_RegiHelp (VL_I_PrimLines, "�����", FALSE);
130
AM_RegiVert (&VL_I_PrimBoxes, "������� ��������� /��/", VL_Into);
131
AM_RegiHelp (VL_I_PrimBoxes, "������� ���������", FALSE);
133
AM_RegiVert (&VL_Out, "���������� ������ /��/", parent);
128
AM_RegiVert (&VL_I_PrimLines, "Линии /ВЛ/", VL_Into);
129
AM_RegiHelp (VL_I_PrimLines, "Линии", FALSE);
130
AM_RegiVert (&VL_I_PrimBoxes, "Коробки компонент /ВЛ/", VL_Into);
131
AM_RegiHelp (VL_I_PrimBoxes, "Коробки компонент", FALSE);
133
AM_RegiVert (&VL_Out, "Результаты работы /ВЛ/", parent);
135
\n ������������ ������ ���� ����� ���������� 'RLTABLE' �������� : \
136
\n - ������������ ����� ����������� ����� \
137
\n - ����������������� ����� \
138
\n - ������ ��������������� ����� \
139
\n - ��������� ���������� \
135
\n Результатами работы этой части библиотеки 'RLTABLE' являются : \
136
\n - выставленные флаги верификации линий \
137
\n - скорректированные линии \
138
\n - заново смоделированные линии \
139
\n - спасенные компоненты \
140
140
\n Almi 29.05.99";
141
141
AM_RegiHelp (VL_Out, pText, FALSE);
142
AM_RegiVert (&VL_O_VerifLines, "����������� �����", VL_Out);
143
pText = "����������� ����� : \
144
\n ����� - ��������, ������� - ������, ������ - ������������ ��� ���������������, \
145
\n ���������� - ������� ������� ���������, ���������� - ���������";
142
AM_RegiVert (&VL_O_VerifLines, "Верификация линий", VL_Out);
143
pText = "Верификация линий : \
144
\n Синие - реальные, красные - ложные, желтые - сомнительные или неисследованные, \
145
\n фиолетовые - краевые захваты компонент, коричневые - составные";
146
146
AM_RegiHelp (VL_O_VerifLines, pText, FALSE);
147
AM_RegiVert (&VL_O_CorrLines, "����������������� �����", VL_Out);
148
pText = "����������������� ����� : \
149
\n ��� - ��������� � ��� ����� ������ ����������� �������� � �������� \
150
\n ������������ �����, ���������� � �������� ��������� ���������.";
147
AM_RegiVert (&VL_O_CorrLines, "Скорректированные линии", VL_Out);
148
pText = "Скорректированные линии : \
149
\n Это - внесенные в пул линий общего пользования указания о истинном \
150
\n расположении линий, выделенных с краевыми захватами компонент.";
151
151
AM_RegiHelp (VL_O_CorrLines, pText, FALSE);
152
AM_RegiVert (&VL_O_ModelLines, "(�/�)��������������� �����", VL_Out);
153
pText = "��������������� ����� : \
154
\n ��� - ��� �������������� ������, ��������������� ������ ��������� ����� \
155
\n ��� ������� ��������.";
152
AM_RegiVert (&VL_O_ModelLines, "(н/р)Смоделированные линии", VL_Out);
153
pText = "Смоделированные линии : \
154
\n Это - пул альтернативных данных, предназначенный взамен составных линий \
155
\n для разбора страницы.";
156
156
AM_RegiHelp (VL_O_ModelLines, pText, FALSE);
157
AM_RegiVert (&VL_O_SaveComps, "������ ����� (��������� ����������)", VL_Out);
158
pText = "������ ����� (��������� ����������) : \
159
\n ��� - ��� ��������� ���������, ������� ��������� ���������� �� ������ \
160
\n ����������� ���������� �����. �� ������������ ��� ������������� � \
161
\n ������������ � ������������� �����.";
157
AM_RegiVert (&VL_O_SaveComps, "Жертвы линий (спасенные компоненты)", VL_Out);
158
pText = "Жертвы линий (спасенные компоненты) : \
159
\n Это - пул спасенных компонент, которые неизбежно пострадают от чистки \
160
\n некорректно выделенных линий. Он предназначен для использования в \
161
\n формировании и распознавании строк.";
162
162
AM_RegiHelp (VL_O_SaveComps, pText, FALSE);
164
AM_RegiVert (&VL_Control, "�������� ������ /��/", parent);
165
AM_RegiHelp (VL_Control, "�������� ������", FALSE);
166
AM_RegiVert (&VL_C_ContErr , "�������� ������ /��/", VL_Control);
167
AM_RegiHelp (VL_C_ContErr , "�������� ������", FALSE);
168
AM_RegiVert (&VL_C_ContWarn, "�������� ����������� /��/", VL_Control);
169
AM_RegiHelp (VL_C_ContWarn , "�������� �����������", FALSE);
170
AM_RegiVert (&VL_C_ContRare, "�������� ������ �������� /��/", VL_Control);
171
AM_RegiHelp (VL_C_ContRare , "�������� ������ ��������", FALSE);
173
AM_RegiVert (&VL_Upravlenie, "���������� ����������� /��/", parent);
174
AM_RegiHelp (VL_Upravlenie, "���������� �����������", FALSE);
175
AM_RegiVert (&VL_U_NoPointedLines , "�� ������ �������", VL_Upravlenie);
176
AM_RegiHelp (VL_U_NoPointedLines , "�� ������ �������", FALSE);
177
AM_RegiVert (&VL_U_AbleKillShortVert , "����� ����������� �������� ������������", VL_Upravlenie);
178
AM_RegiHelp (VL_U_AbleKillShortVert , "����� ����������� �������� ������������", FALSE);
179
AM_RegiVert (&VL_U_NewFormalVerify , "����� ���������� �����������", VL_Upravlenie);
180
AM_RegiHelp (VL_U_NewFormalVerify , "����� ���������� �����������", FALSE);
181
AM_RegiVert (&VL_U_NoInvestLongLines, "�������� ����� ����� � ���������", VL_Upravlenie);
182
AM_RegiHelp (VL_U_NoInvestLongLines , "�������� ����� ����� � ���������", FALSE);
183
AM_RegiVert (&VL_U_NoInvestImage, "�������� �������� ����� � �������� ������", VL_Upravlenie);
184
AM_RegiHelp (VL_U_NoInvestImage , "�������� �������� ����� � �������� ������", FALSE);
185
AM_RegiVert (&VL_U_AbleHoriZher, "������ ������ �������������� �����", VL_Upravlenie);
186
AM_RegiHelp (VL_U_AbleHoriZher , "������ ������ �������������� �����", FALSE);
188
AM_RegiVert (&VL_Debug, "������� /��/", parent);
189
AM_RegiHelp (VL_Debug, "���� ������������", FALSE);
190
AM_RegiVert (&VL_D_Info , "����� ����������", VL_Debug);
191
AM_RegiHelp (VL_D_Info , "����� ����������", FALSE);
192
AM_RegiVert (&VL_D_InvestImage , "�������� �� ����", VL_Debug);
193
AM_RegiHelp (VL_D_InvestImage , "�������� �� ����", FALSE);
194
AM_RegiVert (&VL_D_WrResLine , "����������� ����������� ������ �����", VL_Debug);
195
AM_RegiHelp (VL_D_WrResLine , "����������� ����������� ������ �����", FALSE);
196
// AM_RegiVert(&hUseCLine,"������ � ����������� �����",NULL);
164
AM_RegiVert (&VL_Control, "Контроль работы /ВЛ/", parent);
165
AM_RegiHelp (VL_Control, "Контроль работы", FALSE);
166
AM_RegiVert (&VL_C_ContErr , "Контроль ошибок /ВЛ/", VL_Control);
167
AM_RegiHelp (VL_C_ContErr , "Контроль ошибок", FALSE);
168
AM_RegiVert (&VL_C_ContWarn, "Контроль неточностей /ВЛ/", VL_Control);
169
AM_RegiHelp (VL_C_ContWarn , "Контроль неточностей", FALSE);
170
AM_RegiVert (&VL_C_ContRare, "Контроль редких ситуаций /ВЛ/", VL_Control);
171
AM_RegiHelp (VL_C_ContRare , "Контроль редких ситуаций", FALSE);
173
AM_RegiVert (&VL_Upravlenie, "Управление алгоритмами /ВЛ/", parent);
174
AM_RegiHelp (VL_Upravlenie, "Управление алгоритмами", FALSE);
175
AM_RegiVert (&VL_U_NoPointedLines , "Не искать отточия", VL_Upravlenie);
176
AM_RegiHelp (VL_U_NoPointedLines , "Не искать отточия", FALSE);
177
AM_RegiVert (&VL_U_AbleKillShortVert , "Можно опровергать короткие вертикальные", VL_Upravlenie);
178
AM_RegiHelp (VL_U_AbleKillShortVert , "Можно опровергать короткие вертикальные", FALSE);
179
AM_RegiVert (&VL_U_NewFormalVerify , "Новая формальная верификация", VL_Upravlenie);
180
AM_RegiHelp (VL_U_NewFormalVerify , "Новая формальная верификация", FALSE);
181
AM_RegiVert (&VL_U_NoInvestLongLines, "Отменить поиск линий с захватами", VL_Upravlenie);
182
AM_RegiHelp (VL_U_NoInvestLongLines , "Отменить поиск линий с захватами", FALSE);
183
AM_RegiVert (&VL_U_NoInvestImage, "Отменить проверку линий с анализом растра", VL_Upravlenie);
184
AM_RegiHelp (VL_U_NoInvestImage , "Отменить проверку линий с анализом растра", FALSE);
185
AM_RegiVert (&VL_U_AbleHoriZher, "Искать жертвы горизонтальных линий", VL_Upravlenie);
186
AM_RegiHelp (VL_U_AbleHoriZher , "Искать жертвы горизонтальных линий", FALSE);
188
AM_RegiVert (&VL_Debug, "Отладка /ВЛ/", parent);
189
AM_RegiHelp (VL_Debug, "Узел разработчика", FALSE);
190
AM_RegiVert (&VL_D_Info , "Общая информация", VL_Debug);
191
AM_RegiHelp (VL_D_Info , "Общая информация", FALSE);
192
AM_RegiVert (&VL_D_InvestImage , "Проверка по тифу", VL_Debug);
193
AM_RegiHelp (VL_D_InvestImage , "Проверка по тифу", FALSE);
194
AM_RegiVert (&VL_D_WrResLine , "Отписывание результатов поиска линий", VL_Debug);
195
AM_RegiHelp (VL_D_WrResLine , "Отписывание результатов поиска линий", FALSE);
196
// AM_RegiVert(&hUseCLine,"Работа с контейнером линий",NULL);
198
198
/*----------------------------------------------------------------------------*/
199
199
Handle AM_GetKeyOfRule (VL_RULES Code)
203
/* ����������� ����� */
203
/* Верификация линий */
204
204
case RU_VL_Into :
206
206
case RU_VL_I_PrimLines :