如何使用Java获取png文件中的文本
我想检查图像中是否存在特定字符串。这可能吗? pngj 可以做到这一点吗?
我的文件将包含一个图表和一些图例。我想检查图例是否正确。
I want to check if particular string is present in the image. Is that possible? Is pngj can do that?
My file will contain a graph and some legends. I want to check the if the legends are correct.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
不,你不能用 pngj 做到这一点。 PNG 图像中可见的文本不会在内部存储为文本。如果您想识别文本,您将需要 OCR 软件。
然而,如果您能够以另一种更容易被计算机解析的格式获取数据,那就会好很多。
No, you can't do that with pngj. The text that is visible in the PNG image is not internally stored as text. You will need OCR software if you wish to identify the text.
However it would be much better if you could get the data in another format that is easier to parse by a computer.
是的,这似乎是可能的。但是,您应该找到一个好的 OCR 库。然后,假设您的 OCR 库返回了正确的结果,您需要以某种方式验证图例是否放置在正确的位置。
Yes, it seems to be possible. However, you should find a good OCR library. And then, assuming that your OCR library returned proper results you need to verify somehow if your legends are placed in proper positions.
这里我用scala给出我的解决方案。如果您是 java 开发人员,那么将 scala 代码转换为 java 代码对您来说是非常容易的。
Step1:在build.sbt中再添加一行
Step2:导入库
Step2:scala代码。请注意:这里是一个File类型。如果只有fileName/filePath,则需要使用new File()来转换。
我还写了一篇博客来提供有关 如何从另一个文件(pdf、html、图像等)中提取文本/内容
如果您想了解有关java-ocr-api的更多信息,您可以阅读其官方网站。
Here I use scala to give out my solution. If you are java developer, it is quite easy for you to convert the scala code to your java code.
Step1: in build.sbt to add one more line
Step2: import library
Step2: scala code.Please note: here is a File type. If you only have fileName/filePath, you need to use new File() to convert it.
I also write a blog to give more details info about how to extract text/content from another file(pdf, html, image, etc)
If you want to read more about this java-ocr-api, you can read its official website here.
您可以尝试 Asprise OCR。这是 Java 中提供的一个很好的 OCR API。
You can try Asprise OCR out. It's a good OCR API available in Java.
您可以使用下面的 Tesserat.sample 代码:-
You can use Tesserat.sample code below:-