如何使用C ++

时间:2015-06-29 13:46:59

标签: c++ ocr tesseract

我有一个简单的问题:如何使用C ++获取tesseract中的变量。

例如,我想设置"load_system_dawg" to false

`tesseract.setVariable("load_system_dawg",?);`
是吗? = 0和1,或"真"和"假"?

还有如何检查变量的设置?

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

在我的所有情况和尝试中,代码都会中断。

Documentation Tesseract GetBoolVariable

修改

我能够得到一个变量,但为什么在设定之后得不到。

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",& result);

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

要检查结果,我正在调试代码。

2 个答案:

答案 0 :(得分:1)

我不知道ocr,只是通过阅读我发现的doc,......

获取bool变量的函数具有以下签名:

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

所以你必须这样称呼它:

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

setVariable将const char *作为第二个参数。因此,您的?应为"0" / "1""true" / "false"(但不是0 / 1或{{ 1}} / true,我很确定两种变体都可以使用。

答案 1 :(得分: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