OpenCV覚え書き

よく使うコードに関して書き留めておきます.

■画像の切り出しを行う

・・・ある画像から一部分の切り抜きを行う. imageからwidth、heightの領域をcropimageに切り出す
IplImage* cropimg = cvCreateImage(cvSize(width,height),image->depth,image->nChannels);
cvSetImageROI(image, cvRect(0, 0, width, height));
cvResetImageROI(cropimg);
cvReleaseImage(&cropimg);

■画像の結合を行う

2枚分の領域確保してcvSetImageROIを使うと便利 ・・・2枚の画像を1枚の画像として結合するときに使う.

結合例(横方向)

void stack(IplImage *img1,IplImage *img2)
{
	IplImage* stacked = cvCreateImage( cvSize(img1->width+img2->width,MAX(img1->height,img2->height)),IPL_DEPTH_8U, 3 );
	cvZero( stacked );
	cvSetImageROI( stacked, cvRect( 0, 0, img1->width, img1->height ) );
	cvAdd( img1, stacked, stacked, NULL );
	cvSetImageROI( stacked, cvRect(img1->width, 0, img2->width, img2->height) );
	cvAdd( img2, stacked, stacked, NULL );
	cvResetImageROI( stacked );
}

結合例(縦方向)

void stack(IplImage *img1,IplImage *img2)
{
	IplImage* stacked = cvCreateImage( cvSize( MAX(img1->width, img2->width),img1->height + img2->height ),IPL_DEPTH_8U, 3 );
	cvZero( stacked );
	cvSetImageROI( stacked, cvRect( 0, 0, img1->width, img1->height ) );
	cvAdd( img1, stacked, stacked, NULL );
	cvSetImageROI( stacked, cvRect(0, img1->height, img2->width, img2->height) );
	cvAdd( img2, stacked, stacked, NULL );
	cvResetImageROI( stacked );
}

OpenCVのインストール(Linux)

aptやsynapticを使用してのインストールが簡単

OpenCV-linuxを
http://sourceforge.net/project/showfiles.php?group_id=22870
からダウンロードを行ってインストールする方法もあるがGTK+ 2, libpng, libjpeg, libtiff,FFmpeg,libdc1394 & libraw1394などの依存パッケージのインストールも必要になるためちょっと面倒

■Ubuntuへのインストール
apt-getを使うと便利.
以下コマンドリスト.

    sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev
    tar xzfv opencv-(version名).tar.gz
    cd opencv-1.0.0
    ./configure
    make
    sudo make install
    ldconfig
    apt-get install libmagick++9-dev

OpenCVのインストール(windows VS2005)

http://sourceforge.net/project/showfiles.php?group_id=22870からOpenCV v1.0 (Windows) をダウンロードしてインストール。


Visual Studioの設定
Visual StudioにOpenCVのヘッダファイル*.hとライブラリファイル*.libをリンクさせる.
一度設定すれば以降変更する必要なし。
「ツール(T)」→「オプション(O)」→「プロジェクト」→「VC++ディレクトリ」を選択。
「ディレクトリを表示するプロジェクト(S)」で「インクルードファイル」を選択し,以下を追加。

C:\Program Files\OpenCV\cv\include 
C:\Program Files\OpenCV\cvaux\include 
C:\Program Files\OpenCV\cxcore\include 
C:\Program Files\OpenCV\otherlibs\highgui

※最近のOpenCV(2.3とか)だとライブラリの名前が変わってる模様!

「ディレクトリを表示するプロジェクト(S)」で「ライブラリファイル」を選択し,以下を追加。

C:\Program Files\OpenCV\lib

プロジェクトの設定
こちらプロジェクトを作成する度に設定が必要。
「プロジェクト(P)」→「***のプロパティ(P)」→「構成プロパティ」→「リンカ」→「入力」を選択.「追加の依存ファイル」に以下を追加。

cv.lib cxcore.lib cvaux.lib highgui.lib


※最近のOpenCV(2.3とか)だとライブラリの名前が変わってる模様!

コメント(0)

コメントを投稿する