CによるIplImageの扱いについて
OpenCVでは、バージョン2系からC++インターフェースが追加されましたが、Cでコーディングする場合もあると思うので、違いが分かりやすいように比較してみます。 まずは、Cによる画像ファイルの読み込み。
int main(int argc, char *argv[]) { // ウインドウを作るための準備を行ないます. cvvInitSystem(argc, argv); // 画像を読み込みます. // argv[1] はポインタです. // コマンドラインで指定された引数の文字列を指し示しています. IplImage* src ; src = cvvLoadImage( argv[1] ); // "win" という名前のウインドウを作成します. cvvNamedWindow( "win", 0 ); // "win"で作成したウインドウに画像を表示します. cvvShowImage( "win", src ); // 何かキーが押されるまで待ちます. cvvWaitKey("win"); return 0; }
また、読み込みだけでなく、画像のバッファを生成する方法も。
int main(int argc, char *argv[]) { cvvInitSystem(argc, argv); // 320x240の画像用のバッファを確保します。 IplImage* src ; src = cvCreateImage( cvSize(320,240), IPL_DEPTH_8U, 3); // 線を引きます. cvLine(src, cvPoint(10,10), cvPoint(10,30), 0xff0000, 1); // "win"で作成したウインドウに画像を表示します. cvvShowImage("win", src ); }
コラム
OpenCVの勉強に購入した本です。どちらも良著だと思います。これから学ばれる人は是非参考にしてください!
OpenCV プログラミングブック 第2版 OpenCV 1.1対応
「OpenCV プログラミングブック」は2版あるので気を付けてください。こちらが新しい方です。この本は実例が豊富ですので、OpenCVについて理解がしやすいです。一通り例題をこなすと、OpenCVについての知識が深まります。
詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識
分厚いですが、オライリー本の例にもれず、良著だと思います。上の本でOpenCVの面白さを知った人には、手放せない本になるはずです。