0

我有一个 EBCDIC 文件,我从中提取了图像。但是,图像上有一些数据是识别我的交易的关键来源。假设我有一个图像作为“stackoverflow logo”存储在我的桌面上,名称为“img1.jpg”,当我使用以下代码阅读它时,它可以工作

String inputImage = "C:\\Desktop\\img1.jpg";
File imageFile = new File(inputImage);
BufferedImage image1 = ImageIO.read(imageFile);
System.out.println(image1);

但是,当我尝试对从 EBCDIC 转换解码的图像进行相同操作时,它返回 null。

我观察到的不同之处在于解码图像中没有关联的颜色。有什么方法可以读取这些图像并检索图像上的文本。以下不是我正在处理的确切图像,只是为了给出一个想法,我正在分享来自互联网的样本。注意:正在处理的图像看起来像扫描图像(灰度)示例: 在此处输入图像描述

另外,我观察到如果我打开解码文件并通过截图工具进行屏幕截图并将其存储为 jpg 文件(已经是 jpg)并读取它,系统正在读取该文件。不确定问题出在哪里,是压缩还是颜色编码或格式。

4

1 回答 1

0

谢谢大家。我使用 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);
于 2020-08-12T14:40:06.307 回答