バイリニア補間法 OpenCV with C++

OpenCVに関する情報

詳しくはリンク先で確認できる.

  • Mat : Basically a class with two data parts: the matrix header and a pointer to the matrix containing the pixel values.
  • imread() : Loads an image from a file.
  • imwrite() : Saves an image to a specified file.
  • cvtColor() : Converts an image from one color space to another.
  • resize() : Resizes an image.
  • namedWindow() : Creates a window.
  • imshow() : Displays an image in the specified window

C言語用

  • CvMat : struct CvMat, A multi-channel dense matrix.
  • CvSize : struct CvSize, Size of a rectangle or an image.
  • CreateMat : Creates a matrix header and allocates the matrix data

resize関数の注意点

MatlabとOpenCVでは若干デフォルトの設定が違うため注意が必要である. OpenCVではアンチエイリアシングが実行されていない.

Matlab imresize() : イメージのサイズ変更

イメージ縮小時のアンチエイリアシングの実行。'Antialiasing' と論理ブール値 true または false で構成されるコンマ区切りのペアとして指定します。既定値は内挿法に依存します。メソッドが最近傍 ('nearest') の場合、既定値は false です。その他すべての内挿法の場合、既定値は true です。

参考 : MATLAB vs C++ vs OpenCV - imresize - Stack Overflow

CMakeLists.txtについて

OpenCV用に下記をCMakeListsに追加した. 詳しくは公式の「OpenCV: Using OpenCV with gcc and CMake」を参照.

cmake_minimum_required(VERSION 2.8)
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries( ResizeBilinear ${OpenCV_LIBS} )