例:彩色图像的直方图均衡化
int i; IplImage *pImageChannel[4] = { 0, 0, 0, 0 }; pSrcImage = cvLoadImage( "test.jpg", 1 ) ; IplImage *pImage = cvCreateImage(cvGetSize(pSrcImage), pSrcImage->depth, pSrcImage->nChannels); if( pSrcImage ) { for( i = 0; i < pSrcImage->nChannels; i++ ) { pImageChannel[i] = cvCreateImage( cvGetSize(pSrcImage), pSrcImage->depth, 1 ); } // 信道分离 cvSplit( pSrcImage, pImageChannel[0], pImageChannel[1], pImageChannel[2], pImageChannel[3] ); for( i = 0; i < pImage->nChannels; i++ ) { // 直方图均衡化 cvEqualizeHist( pImageChannel[i], pImageChannel[i] ); } // 信道组合 cvMerge( pImageChannel[0], pImageChannel[1], pImageChannel[2], pImageChannel[3], pImage ); // ……图像显示代码(略) // 释放资源 for( i = 0; i < pSrcImage->nChannels; i++ ) { if ( pImageChannel[i] ) { cvReleaseImage( pImageChannel[i] ); pImageChannel[i] = 0; } } cvReleaseImage( pImage ); pImage = 0; }