int main()
{
IplImage *src = cvLoadImage("D:\\c.jpg", 1);
IplImage *d1 = cvCreateImage(cvGetSize(src), src->depth, 1);
IplImage *d2 = cvCreateImage(cvGetSize(src), src->depth, 1);
IplImage *d3 = cvCreateImage(cvGetSize(src), src->depth, 1);
if( !src )
{
printf("NO IMAGE FIND!");
return -1;
}
int i, j;
for(i = 0; i < src->height; i++)
{
for(j = 0; j < src->width; j++)
{
CvScalar s = cvGet2D(src, i, j); // b g r
CvScalar I1 = cvScalar((s.val[0] + s.val[1] + s.val[2]) / 3, 0, 0);
CvScalar I2 = cvScalar( (s.val[0] - s.val[1] + 128), 0, 0);
CvScalar I3 = cvScalar( (s.val[0] - s.val[2] + 128), 0, 0);
cvSet2D(d1, i, j, I1);
cvSet2D(d2, i, j, I2);
cvSet2D(d3, i, j, I3);
}
}
cvNamedWindow("src");
cvShowImage("src",src);
cvNamedWindow("d1");
cvShowImage("d1", d1);
cvNamedWindow("d2");
cvShowImage("d2", d2);
cvNamedWindow("d3");
cvShowImage("d3", d3);
cvWaitKey(0);
cvReleaseImage(&src);
cvDestroyAllWindows();
return 0;
}