如何使用C++在tesseract中设置和获取变量

How to set and get a variable in tesseract using C++

本文关键字:设置 获取 变量 tesseract 何使用 C++      更新时间:2023-10-16

我有一个快速问题:如何使用C++在tesseract中获取变量。

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

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

是?=0和1,还是"true"answers"false"?

以及如何检查变量的设置?

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

在我的所有案例中,并试图破坏代码。

文档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"`

为了检查结果,我正在通过代码进行调试。

好吧,这似乎很有趣。在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

在此处找到来源

我不知道ocr,但通过阅读文档我发现。。。。

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

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

所以你必须这样称呼它:

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

setVariable将const char *作为第二个参数。因此,您的?应该是"0"/"1""true"/"false"(但不是0/1true/false,我非常确信这两种变体都会起作用)。