RPSTR_FUNC(Bool32) RPSTR_Init( uint16_t wHeightCode , Handle hStorage) { wHeightRC = wHeightCode; wLowRC = RPSTR_ERR_NO; snap_enable = TRUE; exit_enable = FALSE; LDPUMA_Init(0,NULL); //kegl_snap_init(); LDPUMA_Registry(&hSnapSpell,"Словарь и постобработка",NULL); LDPUMA_RegistryHelp(hSnapSpell,"Словарь",FALSE); LDPUMA_Registry(&hSnapWordSpell,"Запретить проверку словами",hSnapSpell); LDPUMA_Registry(&hSnapMatch,"Показать проверку словами",hSnapWordSpell); LDPUMA_RegistryHelp(hSnapWordSpell,"Разрешить проверку словами",FALSE); LDPUMA_Registry(&hSnapCapDrop,"Запретить обработку БУКВИЦ",hSnapSpell); LDPUMA_RegistryHelp(hSnapCapDrop,"Запретить обработку БУКВИЦ",FALSE); LDPUMA_Registry(&hSnapEndWord,"Отменить проверку окончаний",hSnapSpell); LDPUMA_RegistryHelp(hSnapEndWord,"Разрешить или нет любые замены окончаний",FALSE); LDPUMA_Registry(&hSnapStartWord,"Отменить осторожность в именах",hSnapSpell); LDPUMA_RegistryHelp(hSnapStartWord,"Обращаться или нет одинаково со всеми словами",FALSE); LDPUMA_Registry(&hVertCompD,"Прорисовка букв в вертикальных строках!",NULL); LDPUMA_RegistryHelp(hVertCompD,"Разрешить прорисовку букв в вертикальных строках",FALSE); return TRUE; }
RSL_FUNC(Bool32) RSL_Init(uint16_t wHeightCode,HANDLE hStorage) { LDPUMA_Init(0,NULL); LDPUMA_Registry(&hDebugRSL,SNAP_STUFF_RSL,NULL); LDPUMA_Registry(&hPreRSL_Root, "Предварительная обработка линий", hDebugRSL); LDPUMA_Registry(&hPreRSL_Debug, "Отладка работы (pre)", hPreRSL_Root); LDPUMA_Registry(&hPreRSL_Control, "Контроль работы (pre)", hPreRSL_Root); LDPUMA_Registry(&hSkipCheckUnderlining, "Выключить проверку подчерков", hPreRSL_Debug); LDPUMA_Registry(&hPrintUnderlineTest, "Вывод результатов проверки подчеркивания", hPreRSL_Control); LDPUMA_RegistryHelp(hPrintUnderlineTest, "В Console печатается количество черных точек (на 1000) в верхней части растра линии", FALSE); LDPUMA_Registry(&hPrintUnderlines, "Вывод координат подчерков", hPreRSL_Control); LDPUMA_RegistryHelp(hPrintUnderlines, "В Console печатаются координаты линий, определенных как подчерки", FALSE); LDPUMA_Registry(&hSkipCheckRaster, "Не проверять линии по растру", hPreRSL_Debug); LDPUMA_RegistryHelp(hSkipCheckRaster, "Если выключить проверку линий по растру, могут подтвердиться линии, выделенные по жирному тексту", FALSE); LDPUMA_Registry(&hPrintRasterCheck, "Вывод результатов проверки растра", hPreRSL_Control); LDPUMA_RegistryHelp(hPrintRasterCheck, "В Console печатается количество черных точек (на 1000) в растре линии", FALSE); LDPUMA_Registry(&hDebugFrag,"Поиск фрагментов линии",hDebugRSL); LDPUMA_Registry(&hDebugFragOwner,"Отладка поиска фрагментов линии",hDebugFrag); LDPUMA_Registry(&hDebugFragOwnerControl,"Контроль поиска фрагментов линии",hDebugFrag); LDPUMA_Registry(&hDebugDrowRectForRaster,"Рисуется прямоугольник линии",hDebugFragOwnerControl); LDPUMA_Registry(&hSkipCorrectPolynomia,"Не корректировать 4-хугольник линии",hDebugFragOwner); LDPUMA_Registry(&hPrintCorrectPolynomia,"Результат проверки 4-хугольника линии",hDebugFragOwnerControl); LDPUMA_RegistryHelp(hPrintCorrectPolynomia,"Вывод на консоль результатов проверки 4-хугольника линии",FALSE); LDPUMA_Registry(&hDebugDrowPolynomia,"Рисуется контур линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowCleanedRaster,"Рисуется прямоугольник линии после подчистки",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowGetCorrectedLineStripesIntervals,"Рисуется интервальное представление линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowVerticalLineRaster,"Рисуется растр вертикальной линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowVerticalLineStripesIntervals,"Рисуется интервальное представление вертикальной линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrowVerticalLineCutPoints,"Рисуется точки пересечения вертикальной линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugTypeIntervals,"Вывод на Consol координат интервалов линии",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugTypeStripe,"Вывод на Consol интервальное представление линии",hDebugFragOwnerControl); LDPUMA_Registry(&hSkipDeleteNoiseEvents, "Не выполнять удаление шумовых фрагментов", hDebugFragOwner); LDPUMA_RegistryHelp(hSkipDeleteNoiseEvents, "Не удалять шумовые фрагменты", FALSE); LDPUMA_Registry(&hSkipDelFragLines, "Не удалять сильно фрагментированную линии", hDebugFragOwner); LDPUMA_RegistryHelp(hSkipDelFragLines, "Не удалять линии с числом фрагментов больше 5", FALSE); LDPUMA_Registry(&hPrintFragLines, "Печать результатов проверки фрагментации", hDebugFragOwnerControl); LDPUMA_RegistryHelp(hPrintFragLines, "Вывод на Consol результатов проверки кандидатов на удаление", FALSE); LDPUMA_Registry(&hDebugDrawLineFragmentsOwnWindow,"Рисуются фрагменты линии в отдельном окне",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDroweparationPoints,"Рисуются точки деления линии в отдельном окне",hDebugFragOwnerControl); LDPUMA_Registry(&hDebugDrawLineFragments,"Рисуются фрагменты линии в основном окне",hDebugFragOwnerControl); LDPUMA_RegistryHelp(hDebugDrawLineFragments, "Фрагменты рисуются для каждой линии в отдельности", FALSE); LDPUMA_Registry(&hDebugAttr,"Поиск атрибутов линий",hDebugRSL); LDPUMA_Registry(&hDebugAttrOwner,"Контроль поиска атрибутов линии",hDebugAttr); LDPUMA_Registry(&hDebugTypeWidth,"Вывод на Consol ширины линии",hDebugAttrOwner); LDPUMA_Registry(&hDebugTypeDegree,"Вывод на Consol угла наклона линии",hDebugAttrOwner); gwHeightRC = wHeightCode; return RESULT; }
RCUTP_FUNC(Bool32) RCUTP_Init(uint16_t wHeightCode,Handle hStorage) { LDPUMA_Init(0,NULL); LDPUMA_Registry(&hDebugRoot,SNAP_ROOT_CONVERTERS,NULL); LDPUMA_Registry(&hDebugMy,"Отладка точек разрезания",hDebugRoot); LDPUMA_Registry(&hDebugCutP,"Просмотр точек разрезания",hDebugMy); LDPUMA_RegistryHelp(hDebugCutP,"Эта опция предназначена для вывода точек разрезания",FALSE); gwHeightRC = wHeightCode; return TRUE; }
RSELSTR_FUNC(Bool32) RSELSTR_Init(uint16_t wHeightCode,HANDLE hStorage) { gwHeightRC = wHeightCode; LDPUMA_Init(0,NULL); /*------------------------------------------------------------------------------------------*/ // CHSTR_Init(wHeightCode,NULL); /*------------------------------------------------------------------------------------------*/ LDPUMA_Registry(&MainDebug,SNAP_ROOT_MAIN_DEBUG,NULL); LDPUMA_Registry(&MainTime,SNAP_ROOT_MAIN_TIME_CONTROL,NULL); LDPUMA_Registry(&RselstrTime,"Выделение строк..",MainTime); LDPUMA_Registry(&hExit,"От RSELSTR до распознавания",MainTime); // LDPUMA_Registry(&hVertCellsWork,"Обработка вертикальных ячеек таблиц",MainDebug); // LDPUMA_RegistryHelp(hVertCellsWork,"Активизация вершины разрешит обработку вертикальных ячеек таблиц.",FALSE); // LDPUMA_Registry(&hNegaCellsWork,"Обработка негативных ячеек таблиц",MainDebug); // LDPUMA_RegistryHelp(hNegaCellsWork,"Активизация вершины разрешит обработку негативных ячеек таблиц.",FALSE); LDPUMA_Registry(&hDebugCutStr,"Резка слипшихся компонент повсеместно",MainDebug); LDPUMA_RegistryHelp(hDebugCutStr,"Разрешить резку слипшихся компонент повсеместно",FALSE); // LDPUMA_Registry(&hStrPointed,"Проставка флагов точечных линий на строки",MainDebug); // LDPUMA_RegistryHelp(hStrPointed,"Активизация вершины разрешит проставку флагов точечных линий на строки.",FALSE); LDPUMA_Registry(&Root,SNAP_ROOT_STRINGS,NULL); LDPUMA_RegVariable(Root,"Установить уровень отладки.",&layout,"unsigned char"); LDPUMA_RegistryHelp(Root,"В переменных можно установить значение уровня \ отладки от 5 до 8. При продавление вершины строки будут выделяться модулем RBLOCK.",TRUE); LDPUMA_Registry(&hShowString,"Показать выделенные строки",Root); LDPUMA_RegistryHelp(hShowString,"Будут показаны позитивные строки с нормальной ориентацией в виде прямоугольников.",FALSE); LDPUMA_Registry(&hStrPointedD,"Показать строки с флагом пунктирности",Root); LDPUMA_RegistryHelp(hStrPointedD,"Будут показаны строки с флагом пунктирности.",FALSE); LDPUMA_Registry(&hShowCells,"Показать выделенные ячейки с компонентами!",Root); LDPUMA_RegistryHelp(hShowCells,"Будут подсвечиваться ячейка и входящие \ в нее компоненты.",FALSE); LDPUMA_Registry(&VertCells,"Работа с вертикальными ячейками таблиц",NULL); LDPUMA_RegistryHelp(VertCells,"Работа с вертикальными ячейками таблиц",FALSE); LDPUMA_Registry(&NegaCells,"Работа с негативными ячейками таблиц",NULL); LDPUMA_RegistryHelp(NegaCells,"Работа с негативными ячейками таблиц",FALSE); LDPUMA_Registry(&ShowVertCells,"Показать вертикальные ячейки таблиц",VertCells); LDPUMA_RegistryHelp(ShowVertCells,"Будут показаны ячейки таблиц с вертикальным расположением строк.",FALSE); LDPUMA_Registry(&ShowNegaCells,"Показать негативные ячейки таблиц",NegaCells); LDPUMA_RegistryHelp(ShowNegaCells,"Будут показаны негативные ячейки таблиц.",FALSE); LDPUMA_Registry(&hCutStr,"Резка слипшихся компонент повсеместно!",Root); LDPUMA_RegistryHelp(hCutStr,"Вершина резки слипшихся компонент повсеместно",FALSE); LDPUMA_Registry(&CutStrPrintFILE,"Печать в файл разрезанных компонент повсеместно",hCutStr); LDPUMA_RegistryHelp(CutStrPrintFILE,"Разрешить печать в файл cutstr.res разрезанных компонент повсеместно",FALSE); LDPUMA_Registry(&CutStrD,"Визуальный просмотр результатов резки",hCutStr); LDPUMA_RegistryHelp(CutStrD,"Разрешить визуальный просмотр результатов резки компонент повсеместнов",FALSE); LDPUMA_Registry(&DifferenCutToHistory,"Визуальный просмотр отличий",hCutStr); LDPUMA_RegistryHelp(DifferenCutToHistory,"Разрешить визуальный просмотр отличий от предыдущего варианта",FALSE); LDPUMA_Registry(&hCutComp,"Резка слипшихся компонент",Root); LDPUMA_RegistryHelp(hCutComp,"Запретить резку слипшихся компонент на пересечении линий таблицы",FALSE); LDPUMA_Registry(&CutCompPrintFILE,"Печать в файл разрезанных компонент",hCutComp); LDPUMA_RegistryHelp(CutCompPrintFILE,"Разрешить печать в файл cutcomp.res разрезанных компонент",FALSE); LDPUMA_Registry(&CutCompD,"Визуальный просмотр результатов резки!!",hCutComp); LDPUMA_RegistryHelp(CutCompD,"Разрешить визуальный просмотр результатов резки компонент",FALSE); LDPUMA_Registry(&DifferenCutCompToHistory,"Визуальный просмотр отличий!",hCutComp); LDPUMA_RegistryHelp(DifferenCutCompToHistory,"Разрешить визуальный просмотр отличий от предыдущего варианта",FALSE); LDPUMA_Registry(&hTime,"Контроль времени!!!",Root); LDPUMA_RegistryHelp(hTime,"Разрешить контроль времени",FALSE); LDPUMA_Registry(&hDrawComp,"Прорисовка компонент !!!",Root); LDPUMA_RegistryHelp(hDrawComp,"Прорисовка компонент.",FALSE); // LDPUMA_Registry (&hUseCLine,"Работа с контейнером линий",NULL); list=NULL; prelist=NULL; // list=new CLhstr; // prelist=new CLPrepHstr; LDPUMA_Registry (&Root_CHSTR,"Выделитель строк в нестандартных объектах", Root); const char *pText; /* Корневая вершина */ pText = "<Ответственный тов. Степаненков> \ \n Корневая вершина выделителя строк в нестандартных объектах."; LDPUMA_RegistryHelp (Root_CHSTR, pText, FALSE); /* Положить в контейнер*/ LDPUMA_Registry (&PutToCHSTR,"Положить в контейнер", Root_CHSTR); pText = "Положить объект в контейнер сложных строк"; LDPUMA_RegistryHelp (PutToCHSTR, pText, FALSE); /* Вершина резки на строки*/ LDPUMA_Registry (&CutStrV,"Резка на строки",PutToCHSTR); pText = "Осуществляется резка объектов на строки"; LDPUMA_RegistryHelp (CutStrV, pText, FALSE); LDPUMA_RegVariable (CutStrV,"cut_white",&cut_white,"double"); LDPUMA_RegVariable (CutStrV,"cut_str",&cut_str,"double"); LDPUMA_RegVariable (CutStrV,"inf_let_black",&inf_let_black,"double"); LDPUMA_RegVariable (CutStrV,"inf_str_h",&inf_str_h,"int"); LDPUMA_RegVariable (CutStrV,"inf_str_w",&inf_str_w,"int"); /* Положить в контейнер CSTR*/ LDPUMA_Registry (&PutToCSTR,"Положить в контейнер CSTR", Root_CHSTR); pText = "Выгрузить строки из CHSTR в CSTR"; LDPUMA_RegistryHelp (PutToCSTR, pText, FALSE); /*Вершина прорисовки положенных только что строк*/ LDPUMA_Registry (&StrD,"Прорисовать строки", CutStrV); pText = "Прорисовать строки, которые кладутся в данный момент"; LDPUMA_RegistryHelp (StrD, pText, FALSE); /*Вершина прорисовки строки пикселей при резке*/ LDPUMA_Registry (&StrPix,"Прорисовать строку пикселей при резке", CutStrV); pText = "Прорисовать строку пикселей при резке"; LDPUMA_RegistryHelp (StrPix, pText, FALSE); /*Вершина чистки при резке*/ LDPUMA_Registry (&CutStrDel,"Чистка при резке", CutStrV); pText = "Удалять по возможности мусор при резке"; LDPUMA_RegistryHelp (CutStrDel, pText, FALSE); return TRUE; }
RMARKER_FUNC(Bool32) RMARKER_Init(uint16_t wHeightCode,Handle hStorage) { LDPUMA_Init (0,NULL); // Buffer=NULL; // Buffer=(uchar*)RMARKERAlloc(BufferSize*sizeof(uchar)); // if(!Buffer) // return FALSE; // WorkMem=(uchar*)RMARKERAlloc(WorkMemSize*sizeof(uchar)); // if(!WorkMem) // return FALSE; /*------------------------------------------------------------------------------------------*/ RNEG_Init(wHeightCode,NULL); /*------------------------------------------------------------------------------------------*/ #ifdef _USE_RFILL_ if (!RFILL_Init()) { uint32_t retCode = RFILL_GetReturnCode (); char *pszMsg = RFILL_GetReturnString (retCode); return FALSE; } #endif //_USE_RFILL_ /*------------------------------------------------------------------------------------------*/ LDPUMA_Registry(&hMainTime,SNAP_ROOT_MAIN_TIME_CONTROL,NULL); LDPUMA_Registry(&hPrep,"Подготовка.Верт. лин. проц.",hMainTime); LDPUMA_Registry(&hPicture,"Выделение трив. картинок.",hMainTime); LDPUMA_Registry(&hNegative,"Выделение негативов..",hMainTime); LDPUMA_Registry(&hTableZones,"Выделение зон таблиц..",hMainTime); LDPUMA_Registry(&hLines3,"Линии.Третий проход..",hMainTime); LDPUMA_Registry(&hVCutInZones,"Верт. резка в ЗТ.",hMainTime); LDPUMA_Registry(&hSearchTables,"Поиск таблиц..",hMainTime); LDPUMA_Registry(&hAnalTables,"Анализ структуры таблиц..",hMainTime); LDPUMA_Registry(&hSVLP,"Верт. лин. проц.",hMainTime); LDPUMA_Registry(&hBlocks,"Выделение фрагментов..",hMainTime); LDPUMA_Registry(&hNegaTestCells,"Нег. диаг. ячеек таблиц..",hMainTime); LDPUMA_Registry(&hVertTestCells,"Верт. диаг. ячеек таблиц..",hMainTime); LDPUMA_Registry(&hFon,"Поис фона..",hMainTime); LDPUMA_Registry(&hEnd,"От RMARKER до выделения строк..",hMainTime); LDPUMA_Registry(&hSegment,"Грубое выделение фрагментов...",hMainTime); LDPUMA_Registry(&MainDebug,SNAP_ROOT_MAIN_DEBUG, NULL ); // LDPUMA_Registry (&hUseCLine,"Работа с контейнером линий",NULL); LDPUMA_Registry(&DebugFill,"Поиск фона в таблицах",MainDebug); LDPUMA_RegistryHelp(DebugFill,"Активизация вершины разрешит поиск фона в таблицах.",FALSE); LDPUMA_Registry(&hDebugNeg,"Этап поиска негативов.",NULL); LDPUMA_Registry(&hDebugLinePass3,"Этап оценки линий.",NULL); LDPUMA_Registry(&hDebugLinePass2,"Этап третьего прохода по линиям.",NULL); LDPUMA_Registry(&hDebugVerifLine,"Верификация линий.",NULL); LDPUMA_Registry(&hNegaCellsAuto,"Диагностика негативных ячеек таблиц",MainDebug); LDPUMA_RegistryHelp(hNegaCellsAuto,"Активизация вершины разрешит диагностику негативных ячеек таблиц.",FALSE); LDPUMA_Registry(&hVertCellsAuto,"Этап автоматической вертикальной диагностики ячеек таблиц.",NULL); LDPUMA_Registry(&hVertCells,"Работа с вертикальными ячейками таблиц",NULL); LDPUMA_Registry(&hPrintFileVertCells,"Печать в файл вертикальных ячеек",hVertCells); LDPUMA_RegistryHelp(hPrintFileVertCells,"Разрешить печать в файл vertcell.res вертикальных ячеек таблиц.",FALSE); LDPUMA_Registry(&hNegaCells,"Работа с негативными ячейками таблиц",NULL); LDPUMA_Registry(&hDebugUpDown,"Сверху вниз",hVertCells); LDPUMA_RegistryHelp(hDebugUpDown,"При продавлении вершины вертикальные строки будут считаться типа Сверху-Вниз.",FALSE); LDPUMA_Registry(&hDebugPictures,SNAP_LAYOUT_PICTURES,NULL); LDPUMA_Registry(&hLayout,SNAP_ROOT_LAYOUT,NULL); LDPUMA_RegistryHelp(hZone,"Вершина поиска зон таблиц.",FALSE); LDPUMA_Registry(&hPrintCrossedPics, "Отпись пересекаемых таблицами картинок", hLayout); LDPUMA_RegistryHelp(hPrintCrossedPics, "Печать в файл crossed.txt координат картинок, пересекаеющи зоны таблиц", FALSE); LDPUMA_Registry(&hNoRazrTabl, "Отменить разрезание склеенных таблиц.",hZone); LDPUMA_RegistryHelp(hNoRazrTabl, "Отменить разрезание склеенных таблиц.", FALSE); LDPUMA_Registry(&hNoGiveNeg, "Не сдавать негативы.",hZone); LDPUMA_RegistryHelp(hNoGiveNeg, "Не сдавать негативы.", FALSE); LDPUMA_Registry(&hNoSeePict,"Не учитывать картинки.",hZone); LDPUMA_RegistryHelp(hNoSeePict,"Не учитывать картинки.",FALSE); remove("crossed.txt"); return TRUE; }
void SnpSetTools(__SnpToolBox* tools) { LDPUMA_Init(0,NULL); };