如何解决无法读取EBCDIC 037解码图像Java
我有一个EBCDIC文件,可从中提取图像。但是,图像上有些数据是识别我的交易的关键来源。 假设我在桌面上以“ img1.jpg”的名称存储了一个名为“ stackoverflow logo”的图像,当我使用以下代码阅读该图像时,它就可以工作
String inputImage = "C:\\Desktop\\img1.jpg";
File imageFile = new File(inputImage);
BufferedImage image1 = ImageIO.read(imageFile);
System.out.println(image1);
但是,当我尝试对从EBCDIC转换中解码的图像进行相同操作时,它将返回null。
我观察到的差异是解码图像中没有颜色。有什么方法可以读取这些图像并检索图像上的文本。以下不是我正在处理的确切图像,只是为了给出一个想法,我正在共享一个来自Internet的示例。 注意:正在处理的图像看起来像“扫描图像”(灰度) 例:
此外,我观察到,如果我打开解码文件并通过截图工具进行屏幕捕获,并将其存储为jpg文件(已经是jpg)并读取,则系统正在读取该文件。不确定问题出在哪里,是压缩还是颜色编码或格式。
解决方法
谢谢大家。 我使用Tess4j解码TIFF图像。不幸的是,我正在寻找的信息在解码后的文本中不可用。但是,用POC完成。 使用以下库并在存在图像的文件夹中添加了eng.traineddata
import net.sourceforge.tess4j.*;
String inputImage = "C:\\Desktop\\img1.tiff";
File imageFile = new File(inputImage);
ITesseract imageRead = new Tesseract();
imageRead.setDataPath("C:\\Desktop\\");
imageRead.setLanguage("eng");
String imageText = imageRead.doOCR(imageFile);
System.out.println(imageText);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。