文件中图片数据的读取与处理

1、问题描述:文件test.doc中,有下列图片
图片说明
将图片中的数字读取出来,用程序处理。
2、得到manage.doc文件:test.doc文件中读取出来的数字按顺序两两组成一组,每个数字在0~999之间,超出范围的去掉,负数取绝对值。上面图片中的数字,处理后输出到文件manage.doc中。
manage.doc文件内容如下:
373~413 745~785 376~416 742~782 485~525 633~673 116~156
742~748 782~788 636~676 854~894 376~416 89~129

639~679 911~951 613~653 937~977 523~563 338~378
613~653 665~705 549~589 729~769 10~50 70~110

570~610 564~604 463~503 565~605
97~137 299~339 96~136 300~340 453~493 889~929 82~122 518~558

3、对文件manage.doc数据处理

将文件manage.doc文件内容读取到程序中,对数据进行处理
把出现相同次数的范围数字输出来。

最后输出结果:

出现1次的范围:
10~50 70~81 138~156 299~299 341~372 453~462 504~517 606~610 680~705 729~741 786~788 854~888 895~910 930~936 952~977
出现2次的范围:
82~88 137~137 300~337 340~340 373~375 414~416 463~484 494~503 518~522 526~548 559~564 605~605 613~632 677~679 770~781 783~785 889~894 911~929 937~951
出现3次的范围:
89~95 130~136 338~339 379~413 485~493 523~525 549~558 565~569 590~604 633~635 654~664 674~676 742~744 749~769 782~782
出现4次的范围:
96~96 111~115 123~129 376~378 570~589 636~638 665~673 745~748
出现5次的范围:
97~110 116~122 639~653

注:请各位大神帮忙,代码用java编写,myeclipse编译,输出结果要一致。
我的代码就不发了,有几个难点没解决!结果超出满意度加C币!

https://www.cnblogs.com/leixia/p/8329702.html

https://www.juhe.cn/docs/api/id/60 识别图片上的内容的话就用这个接口吧, 第三方的 。 挺好用的 。

读取doc中的图片可以用poi、jacob;
识别图片中的文字,用tesseract-ocr;
过滤出数字,并分组 ,按算法统计出现次数;
输出结果。
这些有点工作量,就只讨论思路了

请各位大神帮忙呀!

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.hwpf.extractor.WordExtractor;

public class Test {
public String readWord(String path) {
String buffer = "";

try {
if (path.endsWith(".doc")) {
InputStream is = new FileInputStream(new File(path));
WordExtractor ex = new WordExtractor(is);
buffer = ex.getText();
ex.close();
} else {
System.out.println("请选择后缀为.doc的文件");
}

} catch (Exception e) {
e.printStackTrace();
}
return buffer;
}
public static void main(String[] args) {
Test tp = new Test();
String content = tp.readWord("D:\number.doc"); //文件存放的地址
System.out.println("content===="+content);
}
}
编译后报错
org.apache.poi.poifs.filesystem.OfficeXmlFileException: The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals with OLE2 Office Documents. You need to call a different part of POI to process this data (eg XSSF instead of HSSF)
at org.apache.poi.poifs.storage.HeaderBlock.(HeaderBlock.java:131)
at org.apache.poi.poifs.storage.HeaderBlock.(HeaderBlock.java:104)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.(POIFSFileSystem.java:128)
at org.apache.poi.hwpf.HWPFDocumentCore.verifyAndBuildPOIFS(HWPFDocumentCore.java:106)
at org.apache.poi.hwpf.extractor.WordExtractor.(WordExtractor.java:53)
at Test.readWord(Test.java:14)
at Test.main(Test.java:28)
content====