Python의 이미지에서 테이블 추출
이미지에서 테이블을 추출하는 것은 특히 처리할 이미지가 많은 경우 지루하고 시간이 많이 걸리는 작업이 될 수 있습니다. 그러나 올바른 도구와 기술을 사용하면 이 프로세스를 자동화하고 빠르고 쉽게 이미지에서 테이블을 추출할 수 있습니다.
이 기사에서는 Python을 사용하여 이미지에서 테이블을 추출하는 방법을 살펴봅니다. 샘플 코드 및 설명과 함께 이미지에서 테이블을 식별하고 추출하는 데 사용할 수 있는 라이브러리( img2table )를 다룰 것입니다. 스캔한 문서, 사진 또는 기타 유형의 이미지로 작업하는 경우 이 문서는 표를 효율적이고 정확하게 추출하는 데 필요한 도구와 지식을 제공합니다.
img2table이란 무엇입니까?
Img2Table은 OpenCV 이미지 처리를 기반으로 하고 널리 사용되는 대부분의 이미지 파일 형식 외에도 PDF 파일을 지원하는 테이블 추출 및 식별을 위한 간단하고 사용자 친화적인 Python 라이브러리입니다.
설계로 인해 특히 CPU 사용량에 대해 신경망 기반 솔루션에 대한 유용하고 덜 무거운 대안을 제공합니다.
다음 파일 형식을 지원합니다.
- JPEG 파일 — .jpeg, .jpg, *.jpe
- 휴대용 네트워크 그래픽 — *.png
- JPEG 2000 파일 — *.jp2
- Windows 비트맵 — .bmp, .dib
- WebP — *.webp
- 휴대용 이미지 형식 — .pbm, .pgm, .ppm .pxm, *.pnm
- PFM 파일 — *.pfm
- OpenEXR 이미지 파일 — *.exr
- 이미지 및 PDF 파일에 대한 표 셀 수준 경계 상자 및 표 식별.
- 병합된 셀과 같은 복잡한 테이블 구조를 처리합니다.
- 테이블 제목 추출.
- OCR 도구 및 서비스를 지원하면서 테이블 콘텐츠를 추출합니다.
- Pandas DataFrame 표현과 추출된 테이블을 나타내는 간단한 개체가 반환됩니다.
- 추출된 테이블을 Excel 파일로 내보내 원래 구조를 유지합니다.
구현
설치
다른 모든 Python 패키지와 마찬가지로 img2table은 pip.
pip install img2table
from img2table.document import Image
image = Image(src,dpi=200, detect_rotation=False)
예를 들어 보겠습니다.
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])
OCR 작업
테이블의 내용을 구문 분석하기 위해 img2table다양한 OCR 도구 및 서비스에 대한 인터페이스를 제공합니다.
from img2table.ocr import TesseractOCR
ocr = TesseractOCR(n_threads=1, lang="eng", tessdata_dir="...")
참고: Tesseract-OCR을 사용하려면 사전 설치가 필요합니다.
한 가지 예를 살펴보겠습니다.
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)
extract_tables문서의 방법을 사용하면 PDF 페이지 또는 이미지에서 여러 테이블을 동시에 추출할 수 있습니다 .
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)
결론
OpenCV -python 라이브러리와 OpenCV는 모두 모든 이미지 처리에 사용됩니다. 이미지에서 선을 인식하는 Hough Transform은 알고리즘의 기반이 됩니다. 이미지의 수평선과 수직선을 인식할 수 있습니다. 다른 접근 방식을 사용할 때 발생할 수 있는 잠재적인 합병증을 피하기 위해 가능한 한 간단하게 유지하는 것이 의도였기 때문에 라이브러리에는 실제로 더 많은 것이 없습니다.
GitHub 에서 프로젝트 문서를 봅니다 .
Twitter 와 LinkedIn 에서 연결해 봅시다 . 내 YouTube 채널을 구독할 수도 있습니다 .
행복한 코딩!

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































