24 #include "config_auto.h"    49 #define VARDIR        "configs/"     51 #define API_CONFIG      "configs/api_config"    66   if ((fp = fopen(path.
string(), 
"rb")) != NULL) {
    70     path += 
"tessconfigs/";
    72     if ((fp = fopen(path.
string(), 
"rb")) != NULL) {
    92     const char *arg0, 
const char *textbase, 
const char *language,
   101   lang = language != NULL ? language : 
"eng";
   117       tprintf(
"Error opening data file %s\n", tessdata_path.
string());
   119           "Please make sure the TESSDATA_PREFIX environment variable is set"   120           " to your \"tessdata\" directory.\n");
   148   for (
int i = 0; i < configs_size; ++i) {
   154   if (vars_vec != NULL && vars_values != NULL) {
   155     for (
int i = 0; i < vars_vec->
size(); ++i) {
   157                                 (*vars_values)[i].
string(),
   158                                 set_params_constraint, this->
params())) {
   159         tprintf(
"Error setting param %s\n", (*vars_vec)[i].
string());
   166     FILE *params_file = fopen(tessedit_write_params_to_file.
string(), 
"wb");
   167     if (params_file != NULL) {
   171       tprintf(
"Failed to open %s for writing params.\n",
   172               tessedit_write_params_to_file.
string());
   188 #ifndef ANDROID_BUILD   196       tprintf(
"Error: LSTM requested, but not present!! Loading tesseract.\n");
   205 #ifndef ANDROID_BUILD   213     tprintf(
"Error: Size of unicharset is greater than MAX_NUM_CLASSES\n");
   235         static_cast<ParamsModel::PassEnum>(p));
   247 static bool IsStrInList(
const STRING& str,
   249   for (
int i = 0; i < str_list.
size(); ++i) {
   250     if (str_list[i] == str)
   265   while (remains.
length() > 0) {
   267     const char* start = remains.
string();
   268     while (*start == 
'+')
   272       target = not_to_load;
   276     int end = strlen(start);
   277     const char* plus = strchr(start, 
'+');
   278     if (plus != NULL && plus - start < end)
   285     if (!IsStrInList(lang_code, *target)) {
   297                               char **configs, 
int configs_size,
   300                               bool set_only_non_debug_params,
   306   sub_langs_.delete_data_pointers();
   310   bool loaded_primary = 
false;
   312   for (
int lang_index = 0; lang_index < langs_to_load.
size(); ++lang_index) {
   313     if (!IsStrInList(langs_to_load[lang_index], langs_not_to_load)) {
   314       const char *lang_str = langs_to_load[lang_index].string();
   316       if (!loaded_primary) {
   323           arg0, textbase, lang_str, oem, configs, configs_size, vars_vec,
   324           vars_values, set_only_non_debug_params, mgr);
   328       if (!loaded_primary) {
   330           tprintf(
"Failed loading language '%s'\n", lang_str);
   333                               &langs_to_load, &langs_not_to_load);
   334           loaded_primary = 
true;
   338           tprintf(
"Failed loading language '%s'\n", lang_str);
   341           sub_langs_.push_back(tess_to_init);
   344                               &langs_to_load, &langs_not_to_load);
   349   if (!loaded_primary) {
   350     tprintf(
"Tesseract couldn't load any languages!\n");
   353   if (!sub_langs_.empty()) {
   360       for (
int s = 0; s < sub_langs_.size(); ++s) {
   361         sub_langs_[s]->language_model_->getParamsModel().Copy(
   364       tprintf(
"Using params model of the primary language\n");
   367       for (
int s = 0; s < sub_langs_.size(); ++s) {
   368         sub_langs_[s]->language_model_->getParamsModel().Clear();
   395                                        char **configs, 
int configs_size,
   398                                        bool set_only_non_debug_params,
   401                                 configs_size, vars_vec, vars_values,
   402                                 set_only_non_debug_params, mgr)) {
   412                  init_tesseract ? mgr : 
nullptr);
   419   for (
int i = 0; i < new_fonts.
size(); ++i) {
   428   for (
int i = 0; i < lang_fonts->
size(); ++i) {
   429     int index = all_fonts.
get_id(lang_fonts->
get(i));
   445   for (
int i = 0; i < sub_langs_.size(); ++i) {
   450   for (
int i = 0; i < sub_langs_.size(); ++i) {
   453   font_table_size_ = all_fonts.
size();
   460                                 NULL, 0, NULL, NULL, 
false, mgr))
 bool IsLSTMAvailable() const
 
int push_back(T object)
Add an element in the table. 
 
void SetupUniversalFontIds()
 
void truncate_at(inT32 index)
 
static bool ReadParamsFromFp(SetParamConstraint constraint, TFile *fp, ParamsVectors *member_params)
 
_ConstTessMemberResultCallback_0_0< false, R, T1 >::base * NewPermanentTessCallback(const T1 *obj, R(T2::*member)() const)
 
void LoadUniversal(const UNICHARSET &encoder_set, UNICHARSET *unicharset)
 
bool LoadFromFp(const char *lang, TFile *fp)
 
int size() const
Return the size used. 
 
const UNICHARSET & GetUnicharset() const
 
int tessedit_ocr_engine_mode
 
const char * string() const
 
bool DeSerialize(TFile *fp)
 
bool IsBaseAvailable() const
 
STRING language_data_path_prefix
 
bool CompareFontInfo(const FontInfo &fi1, const FontInfo &fi2)
 
UnicityTable< FontInfo > & get_fontinfo_table()
 
void ParseLanguageString(const char *lang_str, GenericVector< STRING > *to_load, GenericVector< STRING > *not_to_load)
 
void main_setup(const char *argv0, const char *basename)
CCUtil::main_setup - set location of tessdata and name of image. 
 
bool init_tesseract_lang_data(const char *arg0, const char *textbase, const char *language, OcrEngineMode oem, char **configs, int configs_size, const GenericVector< STRING > *vars_vec, const GenericVector< STRING > *vars_values, bool set_only_init_params, TessdataManager *mgr)
 
bool LoadDictionary(const char *lang, TessdataManager *mgr)
 
bool tessedit_use_primary_params_model
 
void program_editup(const char *textbase, TessdataManager *init_classifier, TessdataManager *init_dict)
 
bool use_ambigs_for_adaption
 
int get_id(T object) const
 
int init_tesseract_internal(const char *arg0, const char *textbase, const char *language, OcrEngineMode oem, char **configs, int configs_size, const GenericVector< STRING > *vars_vec, const GenericVector< STRING > *vars_values, bool set_only_init_params, TessdataManager *mgr)
 
bool GetComponent(TessdataType type, TFile *fp)
 
ParamsModel & getParamsModel()
 
int init_tesseract(const char *arg0, const char *textbase, const char *language, OcrEngineMode oem, char **configs, int configs_size, const GenericVector< STRING > *vars_vec, const GenericVector< STRING > *vars_values, bool set_only_init_params, TessdataManager *mgr)
 
static bool ReadParamsFile(const char *file, SetParamConstraint constraint, ParamsVectors *member_params)
 
static bool SetParam(const char *name, const char *value, SetParamConstraint constraint, ParamsVectors *member_params)
 
bool tessedit_ambigs_training
 
bool load_from_file(const char *const filename, bool skip_fragments)
 
void read_config_file(const char *filename, SetParamConstraint constraint)
 
ETEXT_DESC * global_monitor
 
char * tessedit_write_params_to_file
 
void set_compare_callback(TessResultCallback2< bool, T const &, T const &> *cb)
 
const T & get(int id) const
Return the object from an id. 
 
static DawgCache * GlobalDawgCache()
 
char * tessedit_load_sublangs
 
LanguageModel * language_model_
 
UnicharAmbigs unichar_ambigs
 
void SetupForLoad(DawgCache *dawg_cache)
 
void Load(const STRING &lang, TessdataManager *data_file)
 
bool Init(const char *data_file_name)
 
void InitUnicharAmbigs(const UNICHARSET &unicharset, bool use_ambigs_for_adaption)
 
static void PrintParams(FILE *fp, const ParamsVectors *member_params)
 
bool tessedit_init_config_only
 
void SetPass(PassEnum pass)
 
void CopyFrom(const UNICHARSET &src)
 
int init_tesseract_lm(const char *arg0, const char *textbase, const char *language, TessdataManager *mgr)
 
void LoadUnicharAmbigs(const UNICHARSET &encoder_set, TFile *ambigs_file, int debug_level, bool use_ambigs_for_adaption, UNICHARSET *unicharset)
 
bool major_right_to_left() const