【Python】OCRで認識した数字をCSVファイルに出力

 OCR機能に見通しが経ったので、認識した数字をcsvファイルに出力し、

EXCELで編集しようとしたら苦戦した。後のために経緯と対策をメモしておく。

1.考え方

(1)バタイユゲームユニットの部隊名は、読取りを部分的に諦める。

 文字の認識が難しい為である。特に灰色の縦線が周期的に入っており、

部隊名に重なるので、認識率が低下する。

そこで、認識対象を数字部分に絞ることにした。

(2)認識したデータを基に、EXCELで手動編集する。

 100%認識は難しいので、手動編集は不可欠である。そこで、編集が

容易で、マクロによる一部自動化もできるEXCELで行うことにする。

2.csv出力を試す

(1)行単位に出力を試みる

 前回までで、OCRで認識したデータはtxtという変数に入っている。

これを基に、以下のように処理した。

 ・文字列の中から、数字、/、空白、改行コード(\n)のみ取り出す(正規表現を使う)。

 ・文字列を改行で分割するsplitlinesを使う。

プログラムソースを下記に示す。

出力されたcsvファイルをEXCELで開くと、以下となる。1行N列のデータになってしまう。

(2)対策

csv出力時に1行ごとに出力(下図の17,18行目)する。

出力されたcsvファイルをEXCELで開くと、以下となる。

Pythonは文字列で出力している。それをEXCELが読み込む時に、勝手に解釈している為である。

1例として、3/28が3月28日になってしまう。これは、EXCEL側の問題なので、別途検討する。

<個人的な感想>

 何とか編集可能なcsvデータ形式で出力できるようになった。それにしてもEXCELは勝手すぎる・・・。

 

<リンク>

ブログのトップページは、こちら

バタイユゲーム情報班のホームページは、こちら