~ubuntu-branches/ubuntu/precise/cuneiform/precise

« back to all changes in this revision

Viewing changes to cuneiform_src/Kern/rneg/sources/src/negatest/negatestcell.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jakub Wilk, c-assert.diff, slovenian-slv.diff
  • Date: 2011-01-26 21:53:07 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20110126215307-62x61mcesr607qb7
Tags: 1.0.0+dfsg-2
* Upload to unstable.
* Explicitly build-depend on pkg-config. Thanks to Stefano Rivera for the
  bug report.
* Add Vcs-* fields.
* Use the standard C assert() macro, rather than custom Cuneiform one.
  [c-assert.diff]
* Pass CFLAGS, CXXFLAGS and LDFLAGS (get from dpkg-buildflags) to cmake
  (closes: #608345). Thanks to Sami Liedes for the bug report.
  + Build depend on dpkg-dev (>= 1.15.7).
* Pass --parallel to dh.
  + Bump debhelper minimum version to 7.4.10.
* Update debian/copyright to the latest DEP-5 version.
* Bump year in debian/copyright.
* Explicitly link to GraphicsMagick (rather than via the ImageMagick
  compatibility layer).
* Don't ship /usr/lib/cuneiform/*.so symlinks. These libraries are
  considered private, at least until #598616 is fixed.
* Rename some private variables in debian/rules to make them lowercase.
* Update patch headers.
* Provide proper ‘build-arch’ and ‘build-indep’ targets in debian/rules.
* Document input format in the manual page (closes: #572061). Thanks to
  Janusz S. Bień for the bug report.
* Use ‘slv’ (rather than ‘slo’) as language code for Slovenian.
  [slovenian-slv.diff]
* Fix package description: Slovenian is supported, Slovak is not.
* Improve documentation of the language (-l) option (closes: #602512).
  Thanks to Jari Aalto for the bug report.
* Install reasons file for vrms.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
Copyright (c) 1993-2008, Cognitive Technologies
3
3
All rights reserved.
4
4
 
5
 
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
 
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
7
 
 
8
 
      * ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
 
        ���� ����������� �� ��������� �����, ���� ������ ������� � �����������
10
 
        ����� �� ��������.
11
 
      * ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
 
        ������ ����������, ������������ ��� ���������������, ������ �����������
13
 
        ��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
 
        ����������� ����� �� ��������.
15
 
      * �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
 
        ���� ������������ � �������� �������� ��������� �/��� �����������
17
 
        ���������, ���������� �� ���� ��, ��� ���������������� �����������
18
 
        ����������.
19
 
 
20
 
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
 
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
 
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
 
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
 
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
 
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
 
������������� ������, ��������� � �������������� ��� ���������� ����������
27
 
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
 
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
 
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
 
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
 
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
 
5
Разрешается повторное распространение и использование как в виде исходного кода,
 
6
так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
 
7
 
 
8
      * При повторном распространении исходного кода должны оставаться указанное
 
9
        выше уведомление об авторском праве, этот список условий и последующий
 
10
        отказ от гарантий.
 
11
      * При повторном распространении двоичного кода в документации и/или в
 
12
        других материалах, поставляемых при распространении, должны сохраняться
 
13
        указанная выше информация об авторском праве, этот список условий и
 
14
        последующий отказ от гарантий.
 
15
      * Ни название Cognitive Technologies, ни имена ее сотрудников не могут
 
16
        быть использованы в качестве средства поддержки и/или продвижения
 
17
        продуктов, основанных на этом ПО, без предварительного письменного
 
18
        разрешения.
 
19
 
 
20
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ ЛИЦАМИ "КАК
 
21
ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ,
 
22
ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, НО НЕ
 
23
ОГРАНИЧИВАЯСЬ ИМИ. НИ ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ
 
24
МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, НИ В КОЕМ СЛУЧАЕ НЕ
 
25
НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ
 
26
ПОСЛЕДОВАВШИЕ УБЫТКИ, СВЯЗАННЫЕ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПОНЕСЕННЫЕ ВСЛЕДСТВИЕ
 
27
НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ ПОТЕРИ ДАННЫХ, ИЛИ ДАННЫЕ,
 
28
СТАВШИЕ НЕГОДНЫМИ, ИЛИ УБЫТКИ И/ИЛИ ПОТЕРИ ДОХОДОВ, ПОНЕСЕННЫЕ ИЗ-ЗА ДЕЙСТВИЙ
 
29
ТРЕТЬИХ ЛИЦ И/ИЛИ ОТКАЗА ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ,
 
30
НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМИ СЛУЧАЯМИ), НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ДАЖЕ ЕСЛИ ТАКОЙ
 
31
ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ И ПОТЕРЬ.
32
32
 
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:
59
59
#include "compat_defs.h"
60
60
/*----------------------------------------------------------------------------*/
61
61
 
62
 
//���������
 
62
//Настройки
63
63
 
64
64
extern int inf_neg_h;
65
65
extern int inf_neg_w;
71
71
extern int inf_betw_str_h;
72
72
extern int sup_square;
73
73
/*----------------------------------------------------------------------------*/
74
 
//���������
 
74
//Параметры
75
75
 
76
76
extern int      DPIX;
77
77
extern int      DPIY;
78
78
extern int Height;
79
79
extern int Width;
80
 
extern Word8 ImageName[CPAGE_MAXNAME];
 
80
extern uchar ImageName[CPAGE_MAXNAME];
81
81
 
82
82
/*----------------------------------------------------------------------------*/
83
83
 
84
84
 
85
 
RNEG_FUNC(Bool32) RNEG_TestForNegative(CCOM_handle hCCOM,Handle hCPage,Word8* pImageName,Rect16 Rc)
 
85
RNEG_FUNC(Bool32) RNEG_TestForNegative(CCOM_handle hCCOM,Handle hCPage,uchar* pImageName,Rect16 Rc)
86
86
{
87
87
 MainWindowD=NULL;
88
 
 MainWindowD=LDPUMA_GetWindowHandle ("����������� ����� ���������");
 
88
 MainWindowD=LDPUMA_GetWindowHandle ("Изображение после разворота");
89
89
 if(!MainWindowD)
90
90
    MainWindowD=LDPUMA_GetWindowHandle ("Main");
91
91
 
99
99
 inf_betw_str_h=10;
100
100
 sup_square=500000;
101
101
 
102
 
 Word32 code_sersized=(512<<16);
103
 
 Word32 code_normd=(512<<17);
104
 
 Word32 code_colord=(512<<17)+(512<<16);
105
 
 Word32 code_cutd=(512<<18);
106
 
 Word32 code_cutstrd=(512<<18)+(512<<16);
107
 
 Word32 code_sized=(512<<18)+(512<<17);
 
102
 uint32_t code_sersized=(512<<16);
 
103
 uint32_t code_normd=(512<<17);
 
104
 uint32_t code_colord=(512<<17)+(512<<16);
 
105
 uint32_t code_cutd=(512<<18);
 
106
 uint32_t code_cutstrd=(512<<18)+(512<<16);
 
107
 uint32_t code_sized=(512<<18)+(512<<17);
108
108
 
109
109
 
110
110
 NegList* root=NULL;
112
112
 NegList* temp;
113
113
 int nRC=1;
114
114
 int i;
115
 
 BOOL flag_rotate;
 
115
 Bool flag_rotate;
116
116
 
117
117
 PAGEINFO info = {0};
118
118
 GetPageInfo(hCPage,&info);
163
163
 }
164
164
 
165
165
 
166
 
/* �������������� ��������(���� ������) �����, �.�. ����������
167
 
          �������� � ������������� ����*/
 
166
/* Осуществляется удаление(если повезёт) грязи, т.е. приведение
 
167
          негатива к каноническому виду*/
168
168
 
169
169
 if(LDPUMA_Skip (NegNorm) )
170
170
 {
171
171
 
172
 
/* ������� (���� ���������) ���������*/
 
172
/* Поворот (если необходим) негативов*/
173
173
 
174
174
  flag_rotate=NegRotate(hCPage,root,nRC,skew);
175
175
 
186
186
   }
187
187
 
188
188
 
189
 
/*�������� ��������������*/
 
189
/*Обратное преобразование*/
190
190
   if(flag_rotate)
191
191
   {
192
192
          now=root;
200
200
   }
201
201
 
202
202
 
203
 
  /* ���������� ��������������� ���������� � ��������*/
 
203
  /* Прорисовка нормализованных кандидатов в негативы*/
204
204
 
205
205
  if(nRC>0)
206
206
  {
212
212
     NegDrawRect(MainWindowD,code_normd,RGB(0,255,0),(now->neg).pRc[0]);
213
213
     now=now->next;
214
214
        }
215
 
        LDPUMA_ConsoleN("���������������");
 
215
        LDPUMA_ConsoleN("Нормализованные");
216
216
    LDPUMA_WaitUserInput (NegNormD,MainWindowD);
217
217
    if(LDPUMA_Skip (NegNormDC) )
218
218
      LDPUMA_DeleteRects (MainWindowD,code_normd);
222
222
 
223
223
 
224
224
 
225
 
/* ����� ������� ���������*/
 
225
/* Резка сложных негативов*/
226
226
 
227
227
 if(LDPUMA_Skip (NegCut) )
228
228
 {
229
229
 
230
 
/* ������� (���� ���������) ���������*/
 
230
/* Поворот (если необходим) негативов*/
231
231
 flag_rotate=NegRotate(hCPage,root,nRC,skew);
232
232
 
233
233
 
234
234
  CutNeg(hCPage,&root,nRC,skew);
235
235
 
236
236
 
237
 
   /* ������� (���� ���������) ���������*/
 
237
   /* Поворот (если необходим) негативов*/
238
238
  flag_rotate=NegRotate(hCPage,root,nRC,skew);
239
239
 
240
240
 
250
250
        now=temp;
251
251
   }
252
252
 
253
 
   /*�������� ��������������*/
 
253
   /*Обратное преобразование*/
254
254
   if(flag_rotate)
255
255
   {
256
256
           now=root;
264
264
   }
265
265
 
266
266
 
267
 
  /* ���������� ����������� ���������*/
 
267
  /* Прорисовка разрезанных негативов*/
268
268
 
269
269
  if(nRC>0)
270
270
  {
276
276
     NegDrawRect(MainWindowD,code_cutd,RGB(255,0,0),(now->neg).pRc[0]);
277
277
     now=now->next;
278
278
        }
279
 
        LDPUMA_ConsoleN("�����������");
 
279
        LDPUMA_ConsoleN("Разрезанные");
280
280
    LDPUMA_WaitUserInput (NegCutD,MainWindowD);
281
281
    if(LDPUMA_Skip (NegCutDC) )
282
282
      LDPUMA_DeleteRects (MainWindowD,code_cutd);
293
293
 int h;
294
294
 int w;
295
295
 
296
 
 /*����� �� �������*/
 
296
 /*Отсев по размеру*/
297
297
 if(LDPUMA_Skip (NegSize) )
298
298
 {
299
299
  while(now)
313
313
                  now=now->prev;
314
314
  }
315
315
 
316
 
  /* ���������� ��������� �� �������*/
 
316
  /* Прорисовка отсеянных по размеру*/
317
317
 
318
318
  if(nRC>0)
319
319
  {
329
329
     NegDrawRect(MainWindowD,code_sized,RGB(255,255,0),Rc);
330
330
     now=now->next;
331
331
        }
332
 
        LDPUMA_ConsoleN("������������� ����������");
 
332
        LDPUMA_ConsoleN("Окончательная прорисовка");
333
333
    LDPUMA_WaitUserInput (NegSizeD,MainWindowD);
334
334
    if(LDPUMA_Skip (NegSizeDC) )
335
335
      LDPUMA_DeleteRects (MainWindowD,code_sized);
338
338
 
339
339
 }
340
340
 
341
 
/* ������� (���� ���������) ���������*/
 
341
/* Поворот (если необходим) негативов*/
342
342
 flag_rotate=NegRotate(hCPage,root,nRC,skew);
343
343
 
344
344
 
345
 
/* �������������� ����� ���������� � �������� �� ������������
346
 
            ������� �����*/
 
345
/* Осуществляется отсев кандидатов в негативы по насыщенности
 
346
            чёрного цвета*/
347
347
 
348
348
 if(LDPUMA_Skip (NegColor) )
349
349
 {
350
350
  SearchNegByBlack(hCPage,&root,nRC);
351
351
 
352
 
  /*���������� ���������� � �������� ����� ������ �� �������� �����*/
 
352
  /*Прорисовка кандидатов в негативы после отсева по цветовой гамме*/
353
353
 
354
354
  if(nRC>0)
355
355
  {
361
361
     NegDrawRect(MainWindowD,code_colord,RGB(0,255,255),(now->neg).pRc[0]);
362
362
     now=now->next;
363
363
        }
364
 
        LDPUMA_ConsoleN("��������� �� �������� �����");
 
364
        LDPUMA_ConsoleN("Отсеянные по цветовой гамме");
365
365
    LDPUMA_WaitUserInput (NegColorD,MainWindowD);
366
366
    if(LDPUMA_Skip (NegColorDC) )
367
367
      LDPUMA_DeleteRects (MainWindowD,code_colord);
369
369
  }
370
370
 }
371
371
 
372
 
 /* ����� ������������� ���������*/
 
372
 /* Резка многострочных негативов*/
373
373
 
374
374
 
375
375
 if(LDPUMA_Skip (NegCutStr) )
377
377
  CutNegStr(hCPage,&root,nRC,skew);
378
378
 
379
379
 
380
 
  /* ���������� ����������� ���������*/
 
380
  /* Прорисовка разрезанных негативов*/
381
381
 
382
382
  if(nRC>0)
383
383
  {
390
390
      NegDrawRect(MainWindowD,code_cutstrd,RGB(255,0,255),(now->neg).pRc[i]);
391
391
     now=now->next;
392
392
        }
393
 
        LDPUMA_ConsoleN("����������� �� ������");
 
393
        LDPUMA_ConsoleN("Разрезанные на строки");
394
394
    LDPUMA_WaitUserInput (NegCutStrD,MainWindowD);
395
395
    if(LDPUMA_Skip (NegCutStrDC) )
396
396
      LDPUMA_DeleteRects (MainWindowD,code_cutstrd);
401
401
 
402
402
 
403
403
 
404
 
/*����� ��������������*/
 
404
/*Отсев пересекающихся*/
405
405
 
406
406
 DelIn(hCPage,&root,nRC);
407
407
 
408
408
 
409
 
/* �������������� ������������� �� ������� ����������*/
 
409
/* Осуществляется распознование из массива кандидатов*/
410
410
 
411
411
 if(LDPUMA_Skip (NegRec) )
412
412
 {