解析エンジニアの自動化 blog

コツコツと自動化した方法を残す blog

【 ocr の認識率を上げる画像処理】画像のサイズ変更



こんにちは。
仕事の自動化にやりがいと達成感を感じるガッくんです。



この記事の目次



目的


ocr する時に画像処理をしてから ocr する事があると思います。

画像処理の方法にはグレースケール変換、二値化、白黒反転、平滑化、ノイズ除去など色々な方法があります。

しかし、単純だけど地味に良い仕事をしてくれる ocr の認識率を上げる処理方法に画像サイズを大きくする処理があります。

Python で画像サイズの変更方法をまとめます。



プログラム

ソースコード


# -*- coding: utf-8 -*-
###############################################################################
# ライブラリインポート
###############################################################################
import os                       # os の情報を扱うライブラリ
import pytesseract              # tesseract の python 用ライブラリ
from PIL import Image           # 画像処理ライブラリ
 
# 画像のリサイズ関数
def ResizeImage(img, magnification):
    ImgWidth = img.width * magnification
    ImgHeight = img.height * magnification
    img_resize = img.resize((int(ImgWidth), int(ImgHeight)), Image.LANCZOS)
    return img_resize
 
# カレントディレクトリを変更する
os.chdir("C:\\作業\ocr-Preprocessing")
 
# ファイル名定義
Image000 = '001_Const_Image.jpg'
Image010 = '010_Resize_Const_Image.jpg'
 
# pytesseract に tesseract のパスを通す
pytesseract.tesseract_cmd='C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
 
#################### 画像の読み込み ####################
img = Image.open(Image000)
 
# 画像のリサイズ(画像を 4 倍の大きさに変更)
img_resize = ResizeImage(img, 4)
img_resize.save(Image010)



画像処理の結果

図1 は入力画像で、図2 は出力画像です。

図2 が 4 倍大きくなった画像です。


図1 入力画像


図2 出力画像



コメント

今まで、過去の記事で ocr を行なってきましたが、この処理は単純だけど、 ocr の認識率にはかなり有効な画像処理方法でした。

画像をキレイにする処理もやっていきたいです。



以上