現在,OpenCVをPythonで動かして,グレースケール画像に対するガボールフィルタを用いたフィルタリングを行なっています.大体の場合は問題なく動作するのですが,フィルタのパラメータによって,ほとんどが白と黒で構成されるような2値化画像に近い結果が出力されます.現在行なっているやり方としては,cv2.getGaborKernelでガボールフィルタのカーネルを用意し,cv2.filter2Dで畳み込みを行うというやり方を取っています.そこでcv2.filter2Dで畳み込みを行う際に,総和演算結果を正規化することで2値化画像が出力されてしまう問題を解決できるのではないかと考えました.ここで言う正規化とは,総和演算結果のうち最も大きい値のピクセルの画素値が255となるようにバイアスを乗じ,それ以外のピクセルの画素値にも同じバイアスを乗じていくことを指します.現在のやり方では,恐らくいくつかの画素における総和演算結果が255以上となっており,頭打ちによって白い部分が発生していると判断し,そのような処理をしたいと考えております.
この場合,畳み込みを行う際にcv2.filter2Dに頼らずに,自力で畳み込みを行う方法を取るしかないのでしょうか.または,現在のやり方にいくつかの工夫を加えることで,総和演算結果を正規化することができるのでしょうか.詳しい方よろしくお願いします.
回答1件
あなたの回答
tips
プレビュー