画像をモノクロ化することでTesseract OCRの精度は上がることがわかりました。

画像のモノクロ化でTesseract OCRの精度は上がる?

では以下のような画像の場合、正しく文字を認識することができるでしょうか?

モノクロ化してもしなくても正しく文字を認識することはできません。文字が斜めになっている場合はうまくいかないようです。そこで画像を回転させることを考えます。

90度、180度、270度であれば以下の方法で簡単に回転処理をすることができます。

画像を反転させる 自作アイコンエディタ(その15)

しかし10度だけ回転させる場合はこの方法は使えません。

ではどうすればいいのでしょうか? アフィン変換をするとうまくいきそうです。

このサイトを参考にしました。

【C#】アフィン変換の相互座標変換 | イメージングソリューション

アフィン変換を使ってできることは回転処理だけではありません。もっと広い処理ができます。ただここは回転処理に限定してやってみます。

まずアフィン変換行列を作ります。

これでアフィン変換行列は完成です。そしてこれに回転処理を加えます。

第一引数で30を指定しているのは30度回転させるという意味です。弧度法ではなく度数法で指定します。

そのあと・・・・

これで得られたnewBitmapをファイルとして保存すれば回転させることはできます。

回転角は-10度を指定するとほぼ水平になりました。

Tesseract OCR をWindowsにインストールして使う

この方法で文字認識できるかどうかやってみると

毎日がんばる私の
がんばらない

できた!