官方用法:
tesseract myscan.png out,這樣用的話,必須在硬碟上有一個myscan.png物體圖片,很不方便!
我嘗試傳入圖片二進制流,結果報錯,是我沒會用還是必須得用物體圖片啊?麻煩大神幫忙解答
uj5u.com熱心網友回復:
你用的是命令列的方式,當然要用圖片檔案了。或者你可以用輸入重定向或管道試試(如果命令支持的話),比如
echo “binary arrar data” | tesseract
或者可以考慮用代碼實作,即呼叫tesseract的api,比如參考以下
https://www.google.co.jp/amp/s/www.geeksforgeeks.org/tesseract-ocr-with-java-with-examples/amp/
uj5u.com熱心網友回復:
在您提供的地址中https://www.geeksforgeeks.org/tesseract-ocr-with-java-with-examples/amp/,好像也是使用的命令列方式,您說的考慮代碼實作的原理是什么呢?
uj5u.com熱心網友回復:
告訴你方向,你自己參考就不能看一下API檔案
tessarocr官方檔案 http://tess4j.sourceforge.net/docs/docs-4.4/net/sourceforge/tess4j/Tesseract.html
看看doOCR方法可以接受引數什么型別,比如可以接受 Bufferedmage,BufferedImage 物件不一定就是從檔案來啊,你可以查看 ImageIO 的 read 方法 ,可以從輸入流渡入資訊,不就剛好滿足你的傳入圖片二進制流嗎?
比如
BufferedImage img = ImageIO.read(new ByteArrayInputStream((buf))); //假設buf是byte陣列,保存你的二進制流的陣列,或者你這個二進制流是個java物件,你直接ImageIO.read(你的二進制流)
Tesseract ocr = new Tesseract();
String str = ocr.doOCR(img);
System.out.println(str);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/24202.html
標籤:Java EE
上一篇:DAY2
