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

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

【画像処理】 ocr に必要な色々な画像処理を見据えた白黒反転処理



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



この記事の目次



目的


画像の白黒反転処理は重要です。

線を収縮や膨張させる画像処理方法がありますが、この処理は白色を対象に処理されます。

なので、前提として、画像が二値化されていること。また、処理したい線が白であることが必要です。

二値化はリンクの記事でまとめていますので、白黒反転処理についてまとめます。

【画像処理】 ocr の認識率を上げるための二値化 - 解析エンジニアの自動化 blog



プログラム

ソースコード


# -*- coding: utf-8 -*-
###############################################################################
# ライブラリインポート
###############################################################################
import os                       # os の情報を扱うライブラリ
import pytesseract              # tesseract の python 用ライブラリ
from PIL import Image, ImageOps # 画像処理ライブラリ
 
# グレースケール変換関数
def ConversionGrayScale(img):
    gray_img = img.convert('L')
    return gray_img
 
# 二値化(値が 200 未満は 0 にする)関数
def BinarizationImage(img):
    WhiteOnBlack_img = img.point(lambda x:0 if x < 200 else x)
    return WhiteOnBlack_img
 
# 白黒反転関数
def ColorInverter(img):
    img.convert('RGB')
    Inv_img = ImageOps.invert(img)
    return Inv_img
 
# カレントディレクトリを変更する
os.chdir("C:\\作業\ocr-Preprocessing")
 
# ファイル名定義
Image000 = '001_Const_Image.jpg'
Image030 = '030_Black-White_Const_Image.jpg'
 
# pytesseract に tesseract のパスを通す
pytesseract.tesseract_cmd='C:\Program Files (x86)\Tesseract-OCR\tesseract.exe'
 
#################### 画像の読み込み ####################
img = Image.open(Image000)
 
# グレースケール変換
gray_img = ConversionGrayScale(img)
 
# 二値化
Black_img = BinarizationImage(gray_img)
 
# 白黒反転
Inv_img = ColorInverter(Black_img)
Inv_img.save(Image030)



画像処理の結果

図1 は入力画像、図2 は二値化画像、図3 は出力画像です。


図1 入力画像



図2 二値化画像


図3 出力画像



コメント

二値化画像が正確には二値化になってませんが、白黒反転画像が作成出来ました。

二値化画像はいつかなおします。



以上