我有一个简单的问题:如何使用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"`
要检查结果,我正在调试代码。
答案 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