Tess4j/Tess4j 多線程調用 過程中報錯問題記錄 Invalid memory access


最近使用 Tess4j 做一些 OCR圖片文字識別的代碼。

 然后想當然的將這個 ITesseract ocr_robot = new Tesseract(); 作為了工具類做成了成員變量。

當多線程調用 doOCR 的時候就會報 Invalid memory access 的錯。

然后從網上查了好幾個都說是 setDatapath 的設置問題。

最后發現其實是 doOCR 源碼里面有個init方法。

 

然后,init 會重新初始化一些參數。 所以 不能用多線程調用同一個Tesseract 對象的doOCR方法。

 

 

這樣會導致內存混亂吧。需要把Tesseract代碼改成多實例。或者使用對象池。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM