OCR C++ Tesseract用户自定义模式

📅 2026/7/19 1:03:47
OCR C++ Tesseract用户自定义模式
这个程序演示设置一个配置文件以提高识别的正确率。输入图片比较长截图成了好几段。可以看到输入图片是有规律的2个字母4个数字1个字母。人眼很容易看出来这个规律但是识别程序它不知道有这个规律就可能会出现识别错误。在截图里数字0中间有一个点是up专门设置的字体以显示字母O和数字0的区别。左边的输出结果是没有加载用户自定义的模板的结果可以看到第四行里数字0被识别成了字母O.本来是0363现在变成了O363.现在编写一个模板文件在这个文件里\A代表字母\d代表数字右边的输出结果是加载了用户自定义的模板的结果是正确的。输入 Arial.png 待识别的图片my.patterns.config 存储用户配置的文件名my.patterns 存储用户自定义模式代码#include tesseract/baseapi.h #include leptonica/allheaders.h int main() { Pix *image; char *outText; char *configs[]{path/to/my.patterns.config}; int configs_size 1; tesseract::TessBaseAPI *api new tesseract::TessBaseAPI(); if (api-Init(NULL, eng, tesseract::OEM_LSTM_ONLY, configs, configs_size, NULL, NULL, false)) { fprintf(stderr, Could not initialize tesseract.\n); exit(1); } image pixRead(Arial.png); api-SetImage(image); outText api-GetUTF8Text(); printf(outText); api-End(); delete api; delete [] outText; pixDestroy(image); return 0; }