Example #1
0
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;
}
Example #3
0
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;
}
Example #5
0
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;
}
Example #6
0
	void SnpSetTools(__SnpToolBox* tools)
	{
		LDPUMA_Init(0,NULL);
	};