首页 > 编程语言 >利用java实现图片表格检测与结构识别

利用java实现图片表格检测与结构识别

时间:2023-07-15 15:46:08浏览次数:54  
标签:语文 java img 表格 simple image test table 识别

   

Guide

  1. Overview
  2. Requirements
  3. Demo
  4. Modules

Overview

This java package contains modules to help with finding and extracting tabular data from a PDF or image into a CSV format.

Given an image that contains a table…

Extract the the text into a CSV format…

节次 星期,周—,周二,周三,周四,周五
一,语文,英语,英语,自然,数学
二,语文,英语,英语,语文,数学
三,数学,语文,数学,语文,英语
四,数学,语文,数学,体育,英语
五,体育,思想品德,语文,数学,手工
六,美术,音乐,语文,数学,写字

Requirements

See maven dependency jar package.

  • pdfbox 2.0.26
  • javacv 1.5.7
  • djl 0.17.0
  • ...

 

Demo

There is a demo module that will try to extract tables from the image and process the cells into a CSV. You can try it out with one of the images included in this repo.

1.table/demo/MainDemo

That will run against the following image:

The following should be saved to your directory after running the class table/demo/MainDemo.java.

Extracted the following tables from the image:
[('/img_test/simple.png', ['/img_test/simple/table-0.png'])]
Extracted cells from /img_test/simple/table-0.png
Cells:
/img_test/simple/table-0/0-0.png
/img_test/simple/table-0/0-1.png
/img_test/simple/table-0/0-2.png
...

Here is the entire CSV output:

Cell,Format,Formula
B4,Percentage,None
C4,General,None
D4,Accounting,None
E4,Currency,"=PMT(B4/12,C4,D4)"
F4,Currency,=E4*C4

Modules

The package is split into modules with narrow focuses.

  • pdf_to_images uses pdfbox to extract images from a PDF.
  • extract_tables finds and extracts table-looking things from an image.
  • extract_cells extracts and orders cells from a table.
  • ocr_image uses djl to OCR the text from an image of a cell.
  • ocr_to_csv converts into a CSV the directory structure that ocr_image outputs.

The outputs of a previous module can be used by a subsequent module so that they can be chained together to create the entire workflow.

project_address : https://github.com/jiangnanboy/table_ocr_java

标签:语文,java,img,表格,simple,image,test,table,识别
From: https://www.cnblogs.com/little-horse/p/17556200.html

相关文章

  • Java流程控制
    Java流程控制Scanner对象之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。Java.util.Scanner是Java5的新特性,我们可以通过Scanner类来获取用户的输入。基本语法:Scanners=newScanner(System.in);通......
  • Java基础
    跨平台原理Java的跨平台基于编译器和JVM。编译器把源文件编译成与平台无关的字节码class文件,JVM把该文件解释成与平台有关的机器码指令,在平台上执行。Java面向对象的4个特征1抽象提取对象的共性,构成抽象类或接口,由继承抽象类的类或接口的实现类来重写抽象方法。2继承子类继承......
  • java学go
    数组和切片的区别?     数组是同一种数据类型元素的集合,数组在定义时需要指定长度和元素类型:    例如:[3]int    [3]int{1,2,3}        [...]int{1,2,3}    如果数组作为函数的参数,实际传递的是一份数组的拷贝,而不是数组的指针,在函数中修改数组元素不......
  • JDK有用的新特性-Java Record
    目录JavaRecordRecord使用InstanceMethods静态方法StaticMethodRecord的构造方法step1:紧凑和定制构造方法Record与与LombokRecord实现接口LocalRecord嵌套Recordinstanceof判断Record类型总结JavaRecordJava14中预览的新特性叫做Record,在Java中,Record是一......
  • java执行jar maven指定mian 方法
    pom文件:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven......
  • Java导出格式化后的JSON文件
    Java导出格式化json文件直接上代码:privatevoiddownloadJsonFile(LifeDTOlifeDTO,HttpServletResponseresponse){Stringcontent=JSON.toJSONString(lifeDTO,SerializerFeature.PrettyFormat,SerializerFeature.WriteMapNullValue,SerializerFeature......
  • leetcode刷题记录Java
    难度等级:简单给你两个字符串word1和word2。请你从word1开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回合并后的字符串。classSolution{publicStringmergeAlternately(Stringword1,St......
  • Java基础--day02
    变量作用域类变量、实例变量、局部变量 publicclassDemo03{/***类变量static*/staticdoublesalary=89561.36;/***实例变量*从属于对象*不初始化,会变成默认类型*00.0布尔值默认false*除了基本类......
  • 如何将Maven项目快速改造成一个java web项目(方式二)
    原始的maven项目,使用IDEA打开后,目录结构如下所示删除pom.xml文件,删除resource目录,将java目录下的代码放到项目根目录下,将webapp目录放到项目根目录下。如下图所示 开始配置项目,首先配置Project,配置好之后点击Apply,如下图, 接下来配置Facets  这时候会跳转到......
  • 学的java,工作用的go?
    学的java,找的java开发,进了公司却在使用go。第一天让拉代码,我以为我拉的是java代码,没想到却是go。当时慌死了,我只听说过go,连helloworld都没有go写过。既来之,则安之,我接下来就是装goland,配环境变量,好在代码跑起来了,这个项目使用go+Gin来进行开发,甚至连数据库都不是我熟悉......