« 2009年11月 | メイン | 2010年02月 »

2010年01月06日

openframeworksでIplImage

openframeworksの中でOpenCVを扱いやすい様に、ofxCvColorImageやofxCvGrayscaleImageといったクラスがありますが、openframeworksでは準備されていないOpenCVのAPIを使いたい時に、OpenCV用のデータ型に変換しないといけなくなります。

そうした使い方のサンプルをメモ的に。

ofxCvGrayscaleImage hueImage, saturationImage, brightnessImage;
(略)
warpedHsvFrame.convertToGrayscalePlanarImages(hueImage, saturationImage, brightnessImage);
//---
IplImage *pyr = NULL;
IplImage *src = NULL;
pyr = cvCreateImage( cvSize(W/2, H/2), IPL_DEPTH_8U, 1);
src = cvCreateImage( cvSize(W , H ), IPL_DEPTH_8U, 1);
cvCopyImage(brightnessImage.getCvImage(), src);
cvPyrDown(src, pyr, CV_GAUSSIAN_5x5);
cvPyrUp( pyr, src, CV_GAUSSIAN_5x5);
cvPyrDown(src, pyr, CV_GAUSSIAN_5x5);
cvPyrUp( pyr, src, CV_GAUSSIAN_5x5);
cvCopyImage(src, brightnessImage.getCvImage());
cvReleaseImage(&pyr);
cvReleaseImage(&src);
//---
///// 100 should be variable.
brightnessImage.threshold(threshold,true);

こんな感じです。