#include #include #include int main() { //濃淡化処理の実装例 // 画像バッファの確保 IplImage *imgCol = cvLoadImage( "sphere2.png" ); IplImage *imgMono = cvCreateImage( cvGetSize(imgCol), IPL_DEPTH_8U, 1); //cvCvtColor( imgCol, imgMono, CV_RGB2GRAY ); // APIを使うと1行ですむ for( int i=0; iheight; i++ ) { for( int j=0; jwidth; j++ ) { CvScalar col; // 1画素のデータはdouble4個分として扱う col = cvGet2D( imgCol, i, j ); double b = col.val[0]; double g = col.val[1]; double r = col.val[2]; double m = (r+g+b)/3; cvSetReal2D( imgMono, i, j, (int)m ); } } cvNamedWindow( "Mono2", 1 ); cvShowImage( "Mono2", imgMono ); for(;;) { int c = cvWaitKey(10); // キー入力待ち(毎回10msecだけ待つ) if( c == 27 ) // ESCを入力したら抜ける break; } //cvSaveImage( "sphere2mono.png", imgMono ); ファイルにセーブする場合 cvReleaseImage( &imgCol ); cvReleaseImage( &imgMono ); }