C++版 OpenCVの基本

OpenCVはライブラリの一つです。したがって、C++のソースコード内でOpenCVを使うためには、ヘッダファイルをインクルードして名前空間を指示しなければなりません。基本的にはインクルードするのは2つですが、OpenCVのより多くの機能を使う場合にはインクルードファイルの数が増えることがあります。標準ライブラリでusing namespace std; としたように、OpenCVではプログラムの最初にusing namespace cv; と書く必要があります。

#include "opencv/cv.h"
#include "opencv/highgui.h"
using namespace cv;

 

OpenCVで画像を扱う

静止画像と動画で扱い方が変わることはあまりありません。動画は多数の静止画の集まりだからです(パラパラ漫画のイメージ)。動画を扱う場合には、動画ファイルから1枚ずつ静止画を取り出して処理します。
さて、静止画像をプログラムの中で扱うために入れ物が必要です。OpenCVではMatという二次元行列(マス目のようなイメージ)型があり、画像を効率的に扱えます。Matを扱う上で重要なのが、左上端が原点(0,0)となることです。右に行くに従ってx座標が増えていくのは普通に感じると思いますが、下に行くに従ってy座標が増えていくのには違和感を覚えるかもしれません。しかし、これは画像処理ライブラリ全般によく見られる仕様です。宣言は今までの型と同じようにできます。 「Mat img」とすることでimgという名前のMat型変数を宣言できます。