出典

目次

  1. 環境設定/インストール

    1. pdf2image/popplerのインストール

    2. OpenCVのインストール

  2. PDFファイルをOpenCVで画像処理するまでの手順

    1. PDF→PIL型→OpenCV型に変換するサンプルコード

        1. OpenCVへの変換方法の参考記事

    2. 画像ファイルで一旦出力してやりとりする場合

  3. その他の参考記事について

    1. pdf2imageの使い方について

      1. PDFにパスワードがかかっている場合の対処法

      2. メモリエラーが発生した場合

    2. OpenCVで使える画像処理を知りたい方へ

      1. 詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識

PDF→PIL型→OpenCV型に変換するサンプルコード

from pathlib import Path
from pdf2image import convert_from_path
import cv2
import numpy as np

out_format = 'png'

### PIL型 => OpenCV型 の変換関数
def pil2opencv(in_image):
    out_image = np.array(in_image, dtype=np.uint8)

    if out_image.shape[2] == 3:
        out_image = cv2.cvtColor(out_image, cv2.COLOR_RGB2BGR)
    
    return out_image

### PDF => OpenCV型 の変換関数
def pdf2opencv(in_pdf_path, out_format = "png"):
    opencv_images = []
    
    ### PDF => PIL
    images = convert_from_path(pdf_path = in_pdf_path, dpi = 300, fmt = out_format)
    
    for image in images:
        ### PIL型 => OpenCV型
        opencv_images.append(pil2opencv(image))
        
    return opencv_images

opencv_images = pdf2opencv('input/test,pdf')