//彩色图片信道分割
int XinDaoFenGe()
{
IplImage*pImageChannel[4] = { 0, 0, 0, 0 };
IplImage*pImageColor[4] = { 0, 0, 0, 0 };
IplImage*pSrcImage = cvLoadImage( "D:\\lena.jpg", 1 ) ;
printf("nChannels%d",pSrcImage->nChannels);
IplImage*pImage = cvCreateImage(cvGetSize(pSrcImage),pSrcImage->depth,pSrcImage->nChannels);
if(pSrcImage )
{
for( int i = 0; i <pSrcImage->nChannels; i++ )
{
pImageChannel[i] = cvCreateImage( cvGetSize(pSrcImage),pSrcImage- >depth, 1 );
pImageColor[i] = cvCreateImage( cvGetSize(pSrcImage),pSrcImage- >depth, 3 );
}
cvSplit( pSrcImage, pImageChannel[0],pImageChannel[1],pImageChanne[2], pImageChannel[3] );
cvMerge(pImageChannel[0],NULL, NULL,NULL, pImageColor[0]);
cvMerge(NULL, pImageChannel[1],NULL,NULL, pImageColor[1] );
cvMerge(NULL, NULL,pImageChannel[2],NULL, pImageColor[2]);
}
cvNamedWindow("b",CV_WINDOW_AUTOSIZE);
cvShowImage("b",pImageColor[0]);
cvNamedWindow("g",CV_WINDOW_AUTOSIZE);
cvShowImage("g",pImageColor[1]);
cvNamedWindow("r",CV_WINDOW_AUTOSIZE);
cvShowImage("r",pImageColor[2]);
cvWaitKey(0);
cvReleaseImage(&pImageChannel[0]);
cvReleaseImage(&pImageChannel[1]);
cvReleaseImage(&pImageChannel[2]);
cvReleaseImage(&pSrcImage);
cvDestroyWindow("r");
cvDestroyWindow("g");
cvDestroyWindow("b");
return0;
}
转载至:http://blog.sina.com.cn/s/blog_9edd4b8301014h48.html