近日在使用Tesseract4.0时踩了个坑,在识别一张质量较差的图片时崩溃了。
原图文字被切成多行,每一行文字调用一次Tesseract识别。在某一次崩了,偶发bug。
Release崩溃截图如下:
进入Debug模式崩溃截图如下:
调试发现,是在在某次调用"TessBaseAPIRecognize()" 时崩溃了。
百度搜索"读取位置0x000000时发生访问冲突",都说是空指针,野指针的问题。
但实际调试发现"handle"正常,并不是指针问题。
然后根据Release崩溃信息去看源码,如图:
断言在"contains_unichar_id(unichar_id)",分析这个英文意思:包含字符id 。
这个字符的ID不存在?字符不就是在字库里吗?
换个字库试试看
github找到Tesseract4.0的字库,如图: