つれづれなる備忘録

日々の発見をあるがままに綴る

OpenCVの使い方36 ~ テンプレートマッチング2

今回は前回紹介したテンプレートマッチングを利用した漢字・文字間違い探しについて紹介する。

atatat.hatenablog.com

1. 漢字間違い探し1

以下の漢字間違い探しの問題をテンプレートマッチングを用いて解答してみる。

noukatsu-shimbun.jp

テンプレートマッチングは、一致する画像を検出するためのものであるので、今回は正しいものをすべて検出することで間違っているものをあぶり出す。

以下の1文字だけ間違った漢字を見つける。

漢字間違い1
漢字間違い1

正しい漢字をテンプレート画像として

漢字間違い1テンプレート
漢字間違い1テンプレート

テンプレート画像に一致する複数箇所を検出する。

結果は以下の通りで、すべての"若"が検出され、1文字だけ誤った"苦"は検出されなかった。

漢字間違い1結果
漢字間違い1結果

2. 文字間違い探し(難問)

難しい問題の例として、まず漢字の"二"とカタカナの"ニ"が混ざっている問題を解いてみる。

rabotiku-sato.com

説明によると漢字の"二"の方がカタカナよりもサイズが大きくなっている。

文字間違い2
文字間違い2

テンプレート画像は漢字の"二"とする。

文字間違い2テンプレート画像
文字間違い2テンプレート画像

結果は以下の通り、見事にカタカナのニを見つけることができた。

文字間違い2結果
文字間違い2結果

最後にアルファベットのiとギリシャ数字のⅰで、わずかにアルファベットのiの方が短いようだ。

文字間違い3
文字間違い3

文字間違い3テンプレート
文字間違い3テンプレート

この問題については以下の通りすべての文字が検出されてしまい、閾値を0.999にしても結果が変わらなかった。

文字間違い3結果
文字間違い3結果

間違い1、2に関しては目視でもわかるぐらいの違いだが、3番目は目視でも区別ができないレベル。ここまで微妙な差だとテンプレートマッチングでも厳しいかもしれない。