To covert color image to a gray scale has never been easier with OpenCV. Here is a small C++ program that does conversion from color image to a grayscale.
#include <iostream>
#include "cv.h"
#include "highgui.h"
using namespace std;
int main( int argc, char** argv )
{
//load color image specified by first argument
IplImage *source = cvLoadImage( argv[1]);
// create new image structure
// for the grayscale output image
IplImage *destination = cvCreateImage(
cvSize( source->width, source->height ), IPL_DEPTH_8U, 1 );
// set type CV_RGB2GRAY to convert
// RGB image to grayscale
cvCvtColor( source, destination, CV_RGB2GRAY );
// save grayscale image to a file specified by
// second argument
cvSaveImage( argv[2], destination );
return 0;
}
g++ `pkg-config opencv --cflags --libs` convert_grayscale.cpp -o convert_grayscale
./convert_grayscale re_dsc00056.jpg gray_dsc00056.jpg