伝票の緑線を消したい。文字はグレースケールで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/
現場を回るとドットプリンターで墨(黒)の罫線が邪魔してるのとか普通にある。これは汎用的に使えそうだ。