Интересно, это баг или я чего-то не понимаю.
Образец 1:
tesseract::TessBaseAPI *api;
api = new tesseract::TessBaseAPI();
if (api->Init(NULL, "eng")) {
fprintf(stderr, "Could not initialize tesseract.\n");
exit(1);
}
namedWindow( window_name, CV_WINDOW_NORMAL );
Результат:
Works fine.
Образец 2:
namedWindow( window_name, CV_WINDOW_NORMAL );
tesseract::TessBaseAPI *api;
api = new tesseract::TessBaseAPI();
if (api->Init(NULL, "eng")) {
fprintf(stderr, "Could not initialize tesseract.\n");
exit(1);
}
Результат:
!strcmp(locale, "C"):Error:Assert failed:in file baseapi.cpp, line 192
Segmentation fault (core dumped)
Разница:
Порядок создания окна и инициализации tesseract.
Редактировать:
locale = std::setlocale(LC_CTYPE, nullptr);
ASSERT_HOST(!strcmp(locale, "C"));
Это утверждение не выполняется.Означает ли это, что opencv устанавливает локаль, а tesseract не может ее изменить?