見出し画像

名鉄ミューチケットを文字化する

前回の続き。

名鉄ミューチケットの文字情報

名鉄ミューチケットの文字情報として、「印字された切符の情報」「台紙の【MEITETSU】」があります。そして、この2つの縦横が異なっています。

「印字された切符の情報」を正方向とすると、「台紙の【MEITETSU】」が横になるし、「台紙の【MEITETSU】」を正方向とすると、「印字された切符の情報」が横になる。

前回、Googleさんは「台紙の【MEITETSU】」を正方向として処理をしたため、MEITETSUを多数検出する結果となりました。
これにより、横向きの「印字された切符の情報」は全く検出されなかったわけです。

では、どうするか

「印字された切符の情報」を検出させるには、「台紙の【MEITETSU】」を検出させなければよいわけです。

じゃあ、「台紙の【MEITETSU】」消せばいいのでは?

もう一度、きっぷを見てみましょう。


「印字された切符の情報」と「台紙の【MEITETSU】」に縦横以外の違いはあるでしょうか。
色が違います。
薄いオレンジ色の「台紙の【MEITETSU】」が消した画像をGoogleさんに入力すれば、「印字された切符の情報」だけが残るので、期待する結果が得られそうです。

どう色を消すか。

そもそも消すというのはどういうことか。
方法を考えるにあたり、JPEG画像の色の持ち方を確認。
JPEG画像の色は、ピクセルごとにRed,Green,Blueの三原色を、0~255で指定することによって、約1677万色(256×256×256)を表現できます。
例としては以下の通り。

(R,G,B)=(0,0,0)→黒
(R,G,B)=(255,255,255)→白
(R,G,B)=(255,0,0)→赤
(R,G,B)=(0,255,0)→黄緑
(R,G,B)=(0,0,255)→青

1677万色もあるので、消したい色を狙って消す、というのは非常に困難です。見た目には同じ色に見えても、写真を撮った時の光の当たり具合で
違う色になり、RGBも別の値になってしまいます。

白黒画像に変換してみる

発想を変えてみましょう。
境界を決めて「こっちは黒。あっちは白。」として白黒の画像に変換します。画像の2値化アルゴリズムはいろいろあるのですが、実験がてら自力で。

手始めに、JPEG画像の全ピクセルに対して、(R,G,B)=(40,40,40)を境界とし、
これ以下は黒。これより大きい時は白にしてみます。
例えば、(R,G,B)=(10,20,30)は黒で、(R,G,B)=(50,60,70)は白です。

実行。

お、いい感じ。
ではGoogleさんに食べさせてみましょう。

きたー!!!!
いい感じに検出できた。

境界値の調整をしてみる

もうちょっと調整はできそうなので、境界値をいくつか試してみる。
(R,G,B)=(80,80,80)

(R,G,B)=(120,120,120)

(R,G,B)=(160,160,160)

(R,G,B)=(200,200,200)

(R,G,B)=(240,240,240)

この写真の場合は、(R,G,B)=(120,120,120)あたりが手ごろですかね。。。

読み取らせる前に、画像を加工すれば精度が上がるというお話でした。

この記事が気に入ったらサポートをしてみませんか?