OpenGL de プログラミング - OpenCV::グレイスケール変換2
現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV::グレイスケール変換2
関連OpenCV::グレイスケール画像OpenCV::グレイスケール変換1

問題


以下のカラー画像をグレイスケールに変換せよ。

画像

その他条件:
 新たにIplImageを用意して、cvCvtColor関数でコンバートし、そこに格納する。

答え

#include <iostream>
#include <cv.h>
#include <highgui.h>

const char *filename ="test.jpg";

int main( int argc, char **argv)
{

	//カラー画像で読み込む
	IplImage *color = cvLoadImage( filename, CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
	if(color == NULL)
	{
		std::cerr << filename << " : Can't Load Image\n";
		return -1;
	}

	//グレイスケール用画像確保
	IplImage *gray;
	gray = cvCreateImage( cvGetSize(color),IPL_DEPTH_8U,1);

	cvCvtColor(color, gray, CV_BGR2GRAY);  //グレイスケール画像に変換

	
	cvNamedWindow(filename,CV_WINDOW_AUTOSIZE);
	cvShowImage(filename,gray);


	cvReleaseImage( &color); //メモリ解放
	cvReleaseImage( &gray );

	cvWaitKey(0); 

	cvDestroyWindow(filename);

	return 0;
}