Extrair tabelas de imagens em Python

Extrair tabelas de imagens em imagem Python

Extrair tabelas de imagens pode ser uma tarefa tediosa e demorada, especialmente se você tiver um grande número de imagens para processar. Porém, com as ferramentas e técnicas certas, é possível automatizar esse processo e extrair tabelas de imagens de forma rápida e fácil.

Neste artigo, exploraremos como extrair tabelas de imagens usando Python. Abordaremos uma biblioteca ( img2table ) que pode ser usada para identificar e extrair tabelas de imagens, junto com exemplos de código e explicações. Esteja você trabalhando com documentos digitalizados, fotos ou outros tipos de imagens, este artigo fornecerá as ferramentas e o conhecimento de que você precisa para extrair tabelas com eficiência e precisão.

O que é img2table?

Img2Table é uma biblioteca Python simples e fácil de usar para extração e identificação de tabelas, baseada no processamento de imagens OpenCV e compatível com arquivos PDF, além da maioria dos formatos populares de arquivos de imagem.

Devido ao seu design, oferece uma alternativa útil e menos pesada para soluções baseadas em redes neurais, especialmente para uso de CPU.

Ele suporta os seguintes formatos de arquivo:

  • Arquivos JPEG — .jpeg, .jpg, *.jpe
  • Gráficos de rede portáteis — *.png
  • Arquivos JPEG 2000 — *.jp2
  • Bitmaps do Windows — .bmp, .dib
  • WebP — *.webp
  • Formato de imagem portátil — .pbm, .pgm, .ppm .pxm, *.pnm
  • Arquivos PFM — *.pfm
  • Arquivos de imagem OpenEXR — *.exr
  • Caixas delimitadoras em nível de célula de tabela e identificação de tabela para imagens e arquivos PDF.
  • Lidando com estruturas de tabelas intrincadas, como células mescladas.
  • Extração de títulos de tabelas.
  • Extraindo o conteúdo da tabela enquanto oferece suporte a ferramentas e serviços de OCR.
  • Uma representação Pandas DataFrame e um objeto simples representando as tabelas extraídas são retornados.
  • Preserve a estrutura original das tabelas extraídas exportando-as para um arquivo Excel.

Implementação

Instalação

Assim como qualquer outro pacote Python, o img2table pode ser instalado via pip.

pip install img2table

from img2table.document import Image
image = Image(src,dpi=200, detect_rotation=False)

Vamos dar um exemplo.

from img2table.document import Image

# Instantiation of the image
img = Image(src="image.jpg")

# Table identification
imgage_tables = img.extract_tables()

# Result of table identification
imgage_tables

#output
[ExtractedTable(title=None, bbox=(10, 8, 745, 314),shape=(6, 3)),
 ExtractedTable(title=None, bbox=(936, 9, 1129, 111),shape=(2, 2))]

from img2table.document import PDF
pdf = PDF(src, dpi=200, pages=[0, 2])

Trabalhando com OCR

Para analisar o conteúdo das tabelas, img2tableoferece uma interface para várias ferramentas e serviços de OCR.

from img2table.ocr import TesseractOCR
ocr = TesseractOCR(n_threads=1, lang="eng", tessdata_dir="...")

Observação: o uso do Tesseract-OCR requer instalação prévia.

Vamos dar uma olhada em um exemplo.

from img2table.document import PDF
from img2table.ocr import TesseractOCR

# Instantiation of the pdf
pdf = PDF(src="tablesfile.pdf")

# Instantiation of the OCR, Tesseract, which requires prior installation
ocr = TesseractOCR(lang="eng")

# Table identification and extraction
pdf_tables = pdf.extract_tables(ocr=ocr)

# We can also create an excel file with the tables
pdf.to_xlsx('tables.xlsx', ocr=ocr)

O extract_tablesmétodo de um documento permite que várias tabelas sejam extraídas simultaneamente de uma página PDF ou de uma imagem.

from img2table.ocr import TesseractOCR
from img2table.document import Image

# Instantiation of OCR
ocr = TesseractOCR(n_threads=1, lang="eng")

# Instantiation of document, either an image or a PDF
doc = Image(src, dpi=200)

# Table extraction
extracted_tables = doc.extract_tables(ocr=ocr,
                                      implicit_rows=True,
                                      borderless_tables=False,
                                      min_confidence=50)

Conclusão

A biblioteca OpenCV-python e OpenCV são usadas para todo o processamento de imagem. A Hough Transform , que reconhece linhas em uma imagem, serve como base do algoritmo. Permite-nos reconhecer as linhas horizontais e verticais da imagem. A biblioteca realmente não tem muito mais do que isso porque a intenção era mantê-la o mais direta possível para evitar possíveis complicações que possam surgir do uso de outras abordagens.

Veja a documentação do projeto no GitHub .

Vamos nos conectar no Twitter e no LinkedIn . Você também pode se inscrever no meu canal do YouTube .

Codificação feliz!

Suggested posts

Encontrar informações sobre nomes de domínio

Um trecho de Small, Sharp Software Tools por Brian P. Hogan

Encontrar informações sobre nomes de domínio

Quando você faz uma solicitação para facebook.com, seu computador procura o nome de domínio para traduzir esse nome de domínio em um endereço IP para que seu computador possa fazer essa conexão.

A palavra D e a palavra L em UI Design. Questões de Linguagem. Não seja racista.

A palavra D e a palavra L em UI Design. Questões de Linguagem. Não seja racista.

Nossa linguagem é uma ferramenta poderosa que pode moldar nossos pensamentos, atitudes e ações. Mesmo termos aparentemente inofensivos podem perpetuar preconceitos e estereótipos nocivos.

Related posts

Dois anos em design - O bom, o mau e o feio…

Dois anos em design - O bom, o mau e o feio…

“Ei, Siri, toque Me Dive, de Olivia Dean.” Era maio de 2021 quando comecei meu estágio na Future Academy Africa em Akure, Nigéria.

Rede de TV Twitter

Rede de TV Twitter

O que é velho agora é novo de novo e o que costumava ser a coisa brilhante e brilhante agora parece opaco. Não estou falando de jeans JNCO fazendo um retorno entre os garotos legais do centro da cidade junto com outras modas do final dos anos 1990.

A lenta erosão: revelando como as pessoas desperdiçam em suas carreiras

A lenta erosão: revelando como as pessoas desperdiçam em suas carreiras

No mundo acelerado e competitivo de hoje, a carreira desempenha um papel significativo no crescimento pessoal, na estabilidade financeira e na satisfação geral com a vida. No entanto, muitos indivíduos encontram-se presos em um ciclo implacável de estagnação e insatisfação, definhando gradualmente em suas vidas profissionais.

A perseguição aos cristãos: o crime de ódio do qual não falamos

Esqueça a islamofobia: cristãos (e judeus) são as principais vítimas de crimes de ódio religioso.

A perseguição aos cristãos: o crime de ódio do qual não falamos

Qualquer mente racional sabe que os círculos políticos e midiáticos são dominados pela esquerda, até mesmo pela extrema esquerda, um estado de coisas que cria um desequilíbrio no discurso político. No campo da religião, esse desequilíbrio é bem visível: jornais e redes de esquerda não se apressam em defender a fé cristã.