contains_unichar_id異常

近日在使用Tesseract4.0時踩了個坑,在識別一張質量較差的圖片時崩潰了。

原圖文字被切成多行,每一行文字調用一次Tesseract識別。在某一次崩了,偶發bug。

Release崩潰截圖如下:

進入Debug模式崩潰截圖如下:

 調試發現,是在在某次調用"TessBaseAPIRecognize()" 時崩潰了。

百度搜索"讀取位置0x000000時發生訪問衝突",都說是空指針,野指針的問題。

但實際調試發現"handle"正常,並不是指針問題。

然後根據Release崩潰信息去看源碼,如圖:

斷言在"contains_unichar_id(unichar_id)",分析這個英文意思:包含字符id 。

這個字符的ID不存在?字符不就是在字庫裏嗎?

換個字庫試試看

github找到Tesseract4.0的字庫,如圖:

 其中"4.0.0"與“master”版本字庫都是20多M大小(好像是一樣的)

"4.00"版本字庫30多M

我之前使用的字庫是20多M,那直接換這30多M的字庫試一下。

換掉字庫之後,運行竟然成功了。。。

識別結果如下:

發現第5行有個特殊字符,程序崩潰 。。。。。。

似乎問題就在字庫這了

這不是個坑貨嗎,字庫裏沒有的字就崩潰?

 

此問題純個人分析,如有不同看法,歡迎交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章