• 大小: 62.5MB
    文件类型: .zip
    金币: 2
    下载: 2 次
    发布日期: 2022-08-24
  • 语言: Java
  • 标签: java  

资源简介

对图片进行水印处理,利用TESS4J识别图片并提取信息生成excel表格。里面有字库文件所以占用空间较大。 说明:https://blog.csdn.net/xlantian/article/details/80789115

资源截图

代码片段和文件信息

import java.awt.Rectangle;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import net.sourceforge.tess4j.*;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.xssf.usermodel.*;



public class RP {
private String a0=“无法识别“c0=“无法识别“;

public void PickUp(String s)             //提取文字中的公司名和注册号
{
int c1=-1c2=-1;
c1=s.lastIndexOf(“号 :“);
c2=s.indexOf(“\n“);
if(c1!=-1&&c2!=-1)
{
c0=s.substring(c1+4 c2);

}
int a1=-1a2=-1;
a1=s.indexOf(“称 :“);
a2=s.lastIndexOf(“\n“);
if(a1!=-1&&a2!=-1)
{
a0=s.substring(a1+4 a2);

}
/* else{
int b1=s.indexOf(“名称:“);
    int b2=s.lastIndexOf(“有限公司“);
    if(b1!=-1)
    {
  b0=s.substring(b1+3 b2+2);
}
}*/
}
public void toExcel(int iXSSFWorkbook wbXSSFSheet sheet)           //将文字信息做成表格
{
if(i==0)                                                    //第一行的话,就设置列名等属性
{
XSSFRow row=sheet.createRow(0);
XSSFCellstyle style=(XSSFCellstyle)wb.createCellstyle();
style.setAlignment(HorizontalAlignment.CENTER);
XSSFCell cell=row.createCell(0);
cell.setCellValue(“企业名称“);
        cell.setCellstyle(style);          
        cell = row.createCell(1); 
        cell.setCellValue(“企业注册号“);  
        cell.setCellstyle(style);
}
else                                   //不是第一行就将识别到的信息输入表格
{
XSSFRow row = sheet.createRow(i); 
row.createCell(0).setCellValue(this.a0);  
row.createCell(1).setCellValue(this.c0); 
}
}
public static void main(String[] args) throws IOException {
RP rp=new RP();
int num=1;
Rectangle ret=new Rectangle(0055080);           //设置一个矩形区域,作为识别部分,减少运行时间提高识别率
File root = new File(System.getProperty(“user.dir“) + “/imgs“);//存放处理后的图片,imgs文件夹
File res=new File(System.getProperty(“user.dir“) + “/res“);//源图片位置,res文件夹下

ITesseract instance = new Tesseract();
instance.setLanguage(“songti“);              //使用训练好中文字库识别

XSSFWorkbook wb=new XSSFWorkbook();
XSSFSheet sheet=wb.createSheet(“信息汇总“);
rp.toExcel(0wbsheet);        //设置列名

try {
File[] ress = res.listFiles();
int i=0;
for(File file : ress){
i++;
WaterMark.Clean(file.getAbsolutePath()“F:\\eclipse-workspace\\ReadPicture\\imgs\\“+i+“.png“);
}        //去除源图片水印,处理后的图片放到img文件夹


File[] files = root.listFiles();
for (File file : files) {                        //对去除水印后的图片逐个处理
String result = instance.doOCR(fileret);          //开始采用doOCR(file)效率很低,因为图片内容太多
System.out.print(result);
rp.a0=“无法识别“;
rp.c0=“无法识别“;
rp.PickUp(result);             //调用信息提取的函数,提取出企业名和企业注册号
rp.toExcel(numwbsheet);      //调用toExcel函数,将提取到的信息写入
num++;
}
} catch (TesseractException e) {
System.err.println(e.getMessage());
}


 try {  
            FileOutputStream fout = new FileOutputStr

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-15 10:49  ReadPicture\
     文件        2180  2018-05-27 13:22  ReadPicture\.classpath
     文件         387  2018-05-21 20:13  ReadPicture\.project
     目录           0  2018-06-21 13:52  ReadPicture\.settings\
     文件         592  2018-05-21 20:13  ReadPicture\.settings\org.eclipse.jdt.core.prefs
     目录           0  2018-06-21 13:52  ReadPicture\bin\
     目录           0  2018-06-16 11:23  ReadPicture\bin\com\
     目录           0  2018-06-16 11:23  ReadPicture\bin\com\recognition\
     目录           0  2018-06-16 11:23  ReadPicture\bin\com\recognition\software\
     目录           0  2018-06-16 11:23  ReadPicture\bin\com\recognition\software\jdeskew\
     文件         676  2018-06-16 11:23  ReadPicture\bin\com\recognition\software\jdeskew\ImageDeskew$HoughLine.class
     文件        3616  2018-06-16 11:23  ReadPicture\bin\com\recognition\software\jdeskew\ImageDeskew.class
     文件        3316  2018-06-16 11:23  ReadPicture\bin\com\recognition\software\jdeskew\ImageUtil.class
     目录           0  2018-06-16 11:23  ReadPicture\bin\net\
     目录           0  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\
     目录           0  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\
     文件         287  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$CANCEL_FUNC.class
     文件         892  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$EANYCODE_CHAR.class
     文件        1263  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$ETEXT_DESC.class
     文件         559  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessbaseAPI.class
     文件         580  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessChoiceIterator.class
     文件         583  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessMutableIterator.class
     文件         411  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessOcrEngineMode.class
     文件         421  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessOrientation.class
     文件         574  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessPageIterator.class
     文件         421  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessPageIteratorLevel.class
     文件         785  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessPageSegMode.class
     文件         438  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessParagraphJustification.class
     文件         841  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessPolyBlockType.class
     文件         580  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessResultIterator.class
     文件         580  2018-06-16 11:23  ReadPicture\bin\net\sourceforge\tess4j\ITessAPI$TessResultRenderer.class
............此处省略153个文件信息

评论

共有 条评论