OCR - 광학 문자 인식¶
PyMuPDF 는 OCR(광학 문자 인식)에 대한 통합 지원을 제공합니다. 이미지(Pixmap 클래스를 통해)와 문서 페이지 모두에 OCR을 사용할 수 있습니다.
이 기능은 현재 Tesseract-OCR을 기반으로 하며 별도의 애플리케이션으로 설치해야 합니다. 자세한 내용은 통합 OCR 지원 활성화 을 참조하세요.
이미지 OCR 방법¶
지원되는 이미지는 먼저 Pixmap 으로 변환해야 합니다. 그런 다음 Pixmap을 1페이지 PDF로 저장할 수 있습니다. 이 페이지는 원본 이미지와 동일한 너비와 높이를 가집니다. Tesseract가 인식한 텍스트 레이어가 포함됩니다.
PDF는 Pixmap.pdfocr_save() 또는 Pixmap.pdfocr_tobytes() 메서드 중 하나를 통해 디스크의 파일로 또는 메모리의 PDF로 생성할 수 있습니다.
텍스트는 일반적인 텍스트 추출 및 검색 메서드(Page.get_text(), Page.search_for() 등)로 추출하고 검색할 수 있습니다. 다음 중요한 사실과 전제 조건도 참고하세요:
이미지를 Pixmap으로 변환할 때 색 공간이 RGB이고 alpha가
False(투명도 없음)인지 확인하세요. 필요하면 원본 Pixmap을 변환하세요.모든 텍스트는 Tesseract 자체
GlyphLessFont로 “숨김”으로 작성되며, Courier와 유사한 메트릭을 가진 고정폭 글꼴입니다.모든 텍스트는 일반 및 검은색 속성을 가집니다(즉, 굵게, 기울임꼴 없음, 원본 글꼴 정보 없음).
Tesseract는 벡터 그래픽을 인식하지 않습니다(즉, 그림/선화 없음).
이 방법은 전체 스캔된 PDF를 OCR하는 데도 권장됩니다:
각 페이지를 원하는 해상도로 Pixmap 에 렌더링
결과 1페이지 PDF를 출력 PDF에 추가
문서 페이지 OCR 방법¶
지원되는 모든 문서 페이지를 OCR할 수 있습니다. 페이지 전체 또는 해당 페이지의 이미지 영역만 OCR할 수 있습니다.
광학 문자 인식은 표준 텍스트 추출보다 약 1,000배 느리기 때문에, 페이지당 한 번만 OCR을 수행하고 결과를 TextPage 에 저장합니다. 이후 모든 추출 및 텍스트 검색에 이 TextPage를 사용하면 PyMuPDF 의 일반적인 최고 속도로 처리됩니다.
문서 페이지를 OCR하려면 다음 방법을 따르세요:
OCR이 필요한지/유익한지 판단하세요. 다음과 같은 여러 기준을 사용할 수 있습니다:
페이지가 이미지로 완전히 덮여 있음
페이지에 텍스트가 없음
수천 개의 작은 벡터 그래픽(시뮬레이션된 텍스트를 나타냄)
tp = page.get_textpage_ocr(...)와 같은 명령을 사용하여 페이지를 OCR하고 결과를 TextPage 객체에 저장합니다.이후 모든 텍스트 추출 및 검색에서
textpage=tp매개변수를 통해 생성된 TextPage 를 참조하세요.
