有没有一种方法可以提高人们对某些词/形状的敏感度?起爆是一种可以提高人类对某些刺激的敏感度的方法,我不知道OCR是否也会做同样的事情。我知道像facebook/instagram这样的应用程序可以提高对某些帖子的敏感性,或者对某些账户的行为更敏感,如果这个账户在过去就有这种行为的话
发布于 2019-06-24 12:18:15
的用户词文件是有点挑剔的工作。
下面是我用来使其正常工作的代码的简化版本
#include <tesseract/genericvector.h>
.
.
.
const char* TESSDATA = "C:/Tesseract/tessdata/";
void TryTess() {
tesseract::TessBaseAPI* api = new tesseract::TessBaseAPI();
GenericVector<STRING> pars_vec;
pars_vec.push_back("load_system_dawg");
pars_vec.push_back("load_freq_dawg");
pars_vec.push_back("load_punc_dawg");
pars_vec.push_back("load_number_dawg");
pars_vec.push_back("load_unambig_dawg");
pars_vec.push_back("load_bigram_dawg");
//pars_vec.push_back("load_fixed_length_dawgs");
pars_vec.push_back("language_model_penalty_non_dict_word");
pars_vec.push_back("user_words_suffix");
pars_vec.push_back("user_patterns_suffix");
GenericVector<STRING> pars_values;
pars_values.push_back("0");
pars_values.push_back("0");
pars_values.push_back("0");
pars_values.push_back("0");
pars_values.push_back("0");
pars_values.push_back("0");
//pars_values.push_back("F");
pars_values.push_back("9999999999999999");
pars_values.push_back("user-words");
pars_values.push_back("user-patterns");
api->Init(TESSDATA, "eng", OEM_DEFAULT, NULL, 0, &pars_vec, &pars_values, false);
/// Some image preprocessing to improve detection
char* out = api->GetUTF8Text();
std::cout << "Result: " << out;
api->End();
delete[] out;
}确保配置了TESSDATA路径。我能找到的最好的几个资源是这里和这里。
主要的问题是不知道泛型向量.h类在哪里,因为tesseract的Init方法需要该类(似乎没有任何转换方法)。由于用户字文件必须在初始化之前传入,这是我找到的唯一方法。即使是从配置文件中读取也必须在初始化后完成,这将阻止您使用用户单词。
祝好运!
发布于 2019-06-21 21:52:19
用户过去可以指定一个user-words文件,但是这个特性在Tesseract的最新版本中似乎不起作用,除非是在遗留模式下。
https://stackoverflow.com/questions/56692199
复制相似问题