IplImage* image=cvLoadImage("D:\1.jpg",1);//载入指定路径的图像文件 强制彩色化
IplImage* redImage=cvCreateImage(cvGetSize(image),image->depth,1);//用于存储输入图像的红色分量图像
IplImage* greenImage=cvCreateImage(cvGetSize(image),image->depth,1);//用于存储输入图像的绿色分量图像
IplImage* blueImage=cvCreateImage(cvGetSize(image),image->depth,1);//用于存储输入图像的蓝色分量图像
cvSplit(image,blueImage,greenImage,redImage,NULL);//将彩色图像 image 的蓝色分量图像 blueImage﹑
//绿色分量图像 greenImage 和红色分量图像 redImage 提取出来
cvEqualizeHist(redImage,redImage);//对红色分量图像进行直方图均衡化处理
cvEqualizeHist(greenImage,greenImage); //对绿色分量图像进行直方图均衡化处理
cvEqualizeHist(blueImage,blueImage); //对蓝色分量图像进行直方图均衡化处理
cvMerge(blueImage,greenImage,redImage,NULL,image);//将经过直方图均衡化的蓝色﹑绿色﹑红色图像合并成彩
色图像,存储在 image 中
cvNamedWindow("1",CV_WINDOW_AUTOSIZE);//创建一个名称为 1 的窗口,用于显示图像
cvShowImage("1",image);//在名称为 1 的窗口上显示图像 image
cvReleaseImage(&image);//释放图像 image 的内存
cvReleaseImage(&redImage); //释放图像 redImage 的内存
cvReleaseImage(&greenImage); //释放图像 greenImage 的内存
cvReleaseImage(&blueImage); //释放图像 blueImage 的内存
cvWaitKey(0);
cvDestroyWindow("1"); //销毁窗口资源
效果对比图:
评论3