參考示例如下:
# include & ltcv.h & gt
# include & lthighgui.h & gt
# include & ltstdio.h & gt
# include & lt字符串& gt
使用命名空間std
void main()
{
int I;
ipimage * pimage channel[4]= { 0,0,0,0 };
int count = 15;
char * name = new char
while(count & lt;=17)
{
string FileName = " s 010 _ 001 _ 015942 ";
itoa(計數,名稱,10);
文件名=文件名+名稱;
文件名=文件名+字符串("。png”);
ipimage * PSR image = cvLoadImage(filename . c _ str());
ipimage * pImage = cvCreateImage(cvGetSize(PSR image),PSR image-& gt;深度,PSR image-& gt;nChannels);
if(PSR image)
{
for(I = 0;我& ltPSR image-& gt;n通道;i++)
{
pimage channel[I]= cvCreateImage(cvGetSize(PSR image),PSR image-& gt;深度,1);
}
//通道分離
cvSplit(PSR image,pImageChannel[0],pImageChannel[1],pImageChannel[2],NULL);
for(I = 0;我& ltpImage->;n通道;i++)
{
//直方圖均衡化
cvEqualizeHist(pimage channel[I],pimage channel[I]);
}
//頻道組合
cvMerge( pImageChannel[0],pImageChannel[1],pImageChannel[2],NULL,pImage);
//...圖像顯示代碼(略)
//釋放資源
for(I = 0;我& ltPSR image-& gt;n通道;i++)
{
if(pImageChannel[i])
{
cvReleaseImage(& amp;pimage channel[I]);
pimage channel[I]= 0;
}
}
cvNamedWindow(" 1 ");
cvShowImage("1 ",pImage);
cvWaitKey();
cvDestroyWindow(" 1 ");
//
字符串保存文件= "。\ \ 002 \ \ hist gram \ \ ";
save file = save file+name;
saveFile = saveFile +"。BMP”;
cvSaveImage(saveFile.c_str(),pImage);
count++;
cvReleaseImage(& amp;pImage);
}
}
}