tesseract-ocr 不能以图片二进制流作为参数么?

iori2882 2020-08-06 09:02:38
官方用法:
tesseract myscan.png out,这样用的话,必须在硬盘上有一个myscan.png实体图片,很不方便!

我尝试传入图片二进制流,结果报错,是我没会用还是必须得用实体图片啊?麻烦大神帮忙解答
...全文
10286 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2020-08-11
  • 打赏
  • 举报
回复
引用 2 楼 iori2882 的回复:
在您提供的地址中https://www.geeksforgeeks.org/tesseract-ocr-with-java-with-examples/amp/,好像也是使用的命令行方式,您说的考虑代码实现的原理是什么呢?


告诉你方向,你自己参考就不能看一下API文档
tessarocr官方文档 http://tess4j.sourceforge.net/docs/docs-4.4/net/sourceforge/tess4j/Tesseract.html
看看doOCR方法可以接受参数什么类型,比如可以接受 Bufferedmage,BufferedImage 对象不一定就是从文件来啊,你可以查看 ImageIOread 方法 ,可以从输入流渡入信息,不就刚好满足你的传入图片二进制流吗?

比如
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);
iori2882 2020-08-08
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
或者可以考虑用代码实现,即调用tesseract的api,比如参考以下
在您提供的地址中https://www.geeksforgeeks.org/tesseract-ocr-with-java-with-examples/amp/,好像也是使用的命令行方式,您说的考虑代码实现的原理是什么呢?
qybao 2020-08-07
  • 打赏
  • 举报
回复
你用的是命令行的方式,当然要用图片文件了。 或者你可以用输入重定向或管道试试(如果命令支持的话),比如 echo “binary arrar data” | tesseract 或者可以考虑用代码实现,即调用tesseract的api,比如参考以下 https://www.google.co.jp/amp/s/www.geeksforgeeks.org/tesseract-ocr-with-java-with-examples/amp/

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧