2015-06-29 2 views
2

У меня есть быстрый вопрос: как получить переменную в tesseract с помощью C++.Как установить и получить переменную в tesseract с помощью C++

Например, я хочу, чтобы установить "load_system_dawg" to false

`tesseract.setVariable("load_system_dawg",?);` 

ли? = 0 и 1, или "true" и "false"?

А также как проверить настройки переменной?

`tesseract.getBoolVariable("load_system_dawg");` 
or 
`tesseract.getVariableAsString("load_system_dawg");` 

Во всех моих случаях и попытках код ломается.

Documentation Tesseract GetBoolVariable

EDIT

Я могу получить переменную, но почему получить после того, как установить не представляется возможным.

tess.SetVariable("load_punc_dawg", "0"); 
tess.SetVariable("load_punc_dawg", "false"); 
bool result = false; 
tess.GetBoolVariable("load_punc_dawg", &result); 

Но result = true. BOOL thisOne = tess.GetBoolVariable ("load_punc_dawg", & результат);

returns `"thisOne" = true`, and `"result" = true"` 

И Чтобы проверить результаты, я отлаживаю код.

+0

пытались ли вы 'tess.SetVariable ("load_punc_dawg", "ложный");', то есть "ложь" вместо "0"? – user463035818

+0

только что обновил мой вопрос –

+0

.. просто, чтобы быть уверенным .. у вас есть что-то вроде 'if (result) {std :: cout <<« черт возьми, он не работал »<< std :: endl;}' после вызова getBoolVariable ? – user463035818

ответ

1

Я не знаю распознавание символов, а просто читая doc я узнал, что ....

Функция, чтобы получить переменные Ую имеет эту подпись:

bool GetBoolVariable (const char * name,bool * value) const 

Так у вас есть назвать это так:

bool result; 
tesseract.GetBoolVariable("name",&result); 

SetVariable принимает const char * в качестве второго аргумента. Таким образом, ваш ? должен быть либо "0"/"1" или "true"/"false" (но не 0/1 или true/false и я уверен, что оба варианта будут работать).

+0

Хорошо, спасибо.Я постараюсь ответить немедленно. –

+0

Большое вам спасибо, я не знаю, почему это было для меня такой проблемой ... –

+0

Обновлен мой вопрос: Что я делаю неправильно? –

1

Хорошо, это кажется очень интересным. На данный момент задайте параметр для инициализации tesseract для меня.

GenericVector<STRING> pars_vec; 
pars_vec.push_back("load_punc_dawg"); 

GenericVector<STRING> pars_values; 
pars_values.push_back("0"); //"false" 

tesseract::TessBaseAPI tess; 
tess.Init(NULL, "eng", tesseract::OEM_TESSERACT_ONLY, NULL, 0, &pars_vec, 
      &pars_values, false); 

bool result = false; 
bool thisOne = tess.GetBoolVariable("load_punc_dawg", &result); 

returns "thisOne" = true and "result" = false 

Source found here

Смежные вопросы