核心函数cvSplit()。
#include<cv.h>
#include<highgui.h>
int main(int argc, char** argv)
{
IplImage* img = cvLoadImage(argv[1]);
IplImage* imgR = cvCreateImage(cvGetSize(img), 8, 1);
IplImage* imgG = cvCreateImage(cvGetSize(img), 8, 1);
IplImage* imgB = cvCreateImage(cvGetSize(img), 8, 1);
cvSplit(img, imgR, imgG, imgB, NULL); //核心函数
cvNamedWindow("彩色图");
cvNamedWindow("灰度图R");
cvNamedWindow("灰度图G");
cvNamedWindow("灰度图B");
cvShowImage("彩色图", img);
cvShowImage("灰度图R", imgR);
cvShowImage("灰度图G", imgG);
cvShowImage("灰度图B", imgB);
cvWaitKey(0);
cvReleaseImage(&img);
cvReleaseImage(&imgR);
cvReleaseImage(&imgG);
cvReleaseImage(&imgB);
cvDestroyAllWindows();
}
结果图: