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