2007年1月25日

OpenCV事始め

IntelからOpenSourceの画像処理ライブラリを試しています。
10月ぐらいに正式版が出るって聞いて早速インストールしたんだけど、チョットためしに使っています。

いろいろ日本語サイトも増えてるみたいで、
参考1
参考2
を参考にしながら、画像の収縮に挑戦!

画像の管理は、IplImageにしてるのね。

IplImage* image = cvCreateImage( cvSize(幅, 高さ), IPL_DEPTH_8U, 1);
cvReleaseImage(image);

てな感じでか。

で収縮なんですが、"cv.h"をインクルードしてもらって、
// 元画像サイズ
int wid_src = 640;
int hei_src = 480;

// 収縮画像サイズ ここでは1/2とします
int wid_dst = 640 / 2;
int hei_dst = 480 / 2;

// 作成
IplImage* image_src = cvCreateImage(cvSize(wid_src, hei_src), IPL_DEPTH_8U, 1);
IplImage* image_det = cvCreateImage(cvSize(wid_dst, hei_dst), IPL_DEPTH_8U, 1);

// 画像をコピー
// ※元画像データがimageData[640*480]に入ってる
memcpy(image_src->imageData, imageData, wid_src * hei_dst);

// 収縮
cvResize(image_src, image_dst, CV_INTER_LINEAR);

// 解放
cvReleaseImage(&image_src);
cvReleaseImage(&image_dst);
んな感じでOK!
cvResizeの第3引数は
* CV_INTER_NN - nearest-neigbor interpolation,
* CV_INTER_LINEAR - bilinear interpolation (used by default)
* CV_INTER_AREA - resampling using pixel area relation. It is preferred method for image decimation that gives moire-free results. In case of zooming it is similar to CV_INTER_NN method.
* CV_INTER_CUBIC - bicubic interpolation.
で補間方法。

もうすこしいろいろ触ってみましょ。それでは次回を。。。

ブログランキング ドット ネット 人気blogランキングへ にほんブログ村 IT技術ブログへ

0 件のコメント: