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 1.1対応

「OpenCV プログラミングブック」は2版あるので気を付けてください。こちらが新しい方です。この本は実例が豊富ですので、OpenCVについて理解がしやすいです。一通り例題をこなすと、OpenCVについての知識が深まります。

 

 

 

詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識 詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識

分厚いですが、オライリー本の例にもれず、良著だと思います。上の本でOpenCVの面白さを知った人には、手放せない本になるはずです。

 

コメントを残す

サブコンテンツ

このページの先頭へ