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

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

ocr の認識率を上げるためのグレースケール変換



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



この記事の目次



目的


私は Tesseract を使って ocr しています。
Tesseract のみでの ocr でも、かなり認識率は高いほうだと感じています。
ですか、やはり限界はあります。

そこで、認識率を上げるための画像処理にどういったものがあるのかを調べてみました。

グレースケール変換をまとめます。



プログラム

ソースコード


# -*- coding: utf-8 -*-
###############################################################################
# ライブラリインポート
###############################################################################
import os                       # os の情報を扱うライブラリ
import pytesseract              # tesseract の python 用ライブラリ
from PIL import Image           # 画像処理ライブラリ
 
# グレースケール変換関数
def ConversionGrayScale(img):
    gray_img = img.convert('L')
    return gray_img
 
# カレントディレクトリを変更する
os.chdir("C:\\作業\ocr-Preprocessing")
 
# ファイル名定義
Image000 = '001_Const_Image.jpg'
Image010 = '010_gray_Const_Image.jpg'
 
# pytesseract に tesseract のパスを通す
pytesseract.tesseract_cmd='C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
 
#################### 画像の読み込み ####################
img = Image.open(Image000)
 
# グレースケール変換
gray_img = ConversionGrayScale(img)
gray_img.save(Image010)



画像処理の結果

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


図1 入力画像


図2 出力画像



コメント

カラー画像がグレースケール画像に変換されました。
グレースケール変換処理だけ行うことは少ないと思いますが、必ずどこかで出てくる処理です。



以上