☑スキャンしたOCR画像の浄化

magemanager
·

伝票の緑線を消したい。文字はグレースケールでRGB値が同じなのでnp.Whereの複数条件で絞れるはず。RGB値が完全一致にすると削りすぎるから若干は(例えば±5)余裕を持たせた方がいいだろう。

グレースケール👉グレースケール

それ以外   👉黒(0)、白(255)へ

https://note.nkmk.me/python-numpy-where/

なお、エッジ検出をすると線が白で(255)地が黒(0)になる。つまりエッジ検出はsum( )>0でいい。

伝票の緑を消すには、0に近い方が黒になるので注意。

===翌日===

散々悩んで本屋を周っても何も見つからなかったのに、あっさりと見つかる。

スキャンした伝票は文字がグレースケールでRGBなので、3色同じ数値を含む。そこで緑色の線を消したかったのに、Gを消そうとしても文字が巻き添えになってしまったのだ。for文を2重ループして書いたら動きが遅くなってしまう。あんなに探して見つからなかったのに、悔しいから家でググったらすぐに見つかるのはなぜだろう。cv2のinRange関数か。openCVのマニュアル読んだ方が良いのかな。

https://portaltan.hatenablog.com/entry/2018/11/01/175955

https://pystyle.info/opencv-mask-image/

現場を回るとドットプリンターで墨(黒)の罫線が邪魔してるのとか普通にある。これは汎用的に使えそうだ。

@magemanager
皆にデクノボーと呼ばれいつもにこにこ笑っている そういう人に私はなりたい。 非暴力・非服従