バイリニア補間法 OpenCV with C++
バイリニア補間法をOpenCVを使ってC++で実装した.
ソースコードはGithub上にあげてある.
バイリニア補間法とは
コンピューターによる画像処理で、画像の回転・拡大・変形を行うときの画素補間法の一。求めたい画素の周辺の2×2画素(4画素)の輝度値を参照し、その加重平均値を用いて補間する。双線形補間法 参考
コードの実行
CLion のプロジェクトとなっているので, CLionがあればすぐに実行できる. 無い場合はCMakeやあるいはコードだけコピペしてコンパイルすることでもできるはず.
コードの流れ
- 画像の読み込み (as image)
- 入力画像のグレースケール化 (as gray)
- グレースケール化画像を 1 /1.25 に縮小 (as output)
- それぞれの画像を出力
意外な盲点
Matlab便利すぎてすごいけど, OpenCVと併用する場合とか, 書き換える時とかに注意しないといけない. MatlabとOpenCVでは若干デフォルトの設定が違う. OpenCVではアンチエイリアシングが実行されていないのである.
Matlab imresize() : イメージのサイズ変更
イメージ縮小時のアンチエイリアシングの実行。'Antialiasing' と論理ブール値 true または false で構成されるコンマ区切りのペアとして指定します。既定値は内挿法に依存します。メソッドが最近傍 ('nearest') の場合、既定値は false です。その他すべての内挿法の場合、既定値は true です。
参考 : MATLAB vs C++ vs OpenCV - imresize - Stack Overflow