【openCV】多通道的拆分

#include <cv.h>
#include <highgui.h>
#include <iostream>
using namespace std;

void main()
{
	IplImage *src = cvLoadImage("H:\\CMU表情库\\cohn-kanade\\cohn-kanade\\cohn-kanade\\S010\\001\\S010_001_01594226.png",1);
	IplImage *dst = cvCreateImage(cvGetSize(src),src->depth,src->nChannels);

	//转换图像的颜色空间
	cvCvtColor(src,dst,CV_BGR2Lab);

	IplImage *light = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);
	IplImage *a = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);
	IplImage *b = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);

	//拆分成单通道
	cvSplit(src,light,a,b,NULL);

	cvNamedWindow("SourceImage",1);
	cvShowImage("SourceImage",src);
	cvNamedWindow("Light",1);
	cvShowImage("Light",light);
	cvNamedWindow("a",1);
	cvShowImage("a",a);
	cvNamedWindow("b");
	cvShowImage("b",b);

	cvWaitKey();

	cvSaveImage("light.jpg",light);
	cvSaveImage("a.jpg",a);
	cvSaveImage("b.jpg",b);

	cvDestroyWindow("SourceImage");
	cvDestroyWindow("Light");
	cvDestroyWindow("a");
	cvDestroyWindow("b");

	cvReleaseImage(&src);
	cvReleaseImage(&light);
	cvReleaseImage(&a);
	cvReleaseImage(&b);
}

你可能感兴趣的:(null,include,DST)