现在的位置: 首页 > 综合 > 正文

OpenCV分离RGB像素

2018年02月20日 ⁄ 综合 ⁄ 共 1145字 ⁄ 字号 评论关闭
#include<highgui.h>
#include<cxcore.h>
int main(){
	IplImage *img=cvLoadImage("Baboon.jpg",1);
	//void cvSplit( const CvArr* src, CvArr* dst0, CvArr* dst1, CvArr* dst2, CvArr* dst3 );
	//IplImage *r,*g,*b,*alpha;
	int num=3;
	int i=0;
	char *window[3]={"b","g","r"};
	char *name[3]={"b.jpg","g.jpg","r.jpg"};
	IplImage *subGrayImage[3];
	IplImage *subColorImage[3];
	for(i=0;i<3;i++)
	{
		subGrayImage[i]=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);  
		subColorImage[i]=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,3);  
	}
	cvSplit(img,subGrayImage[0],subGrayImage[1],subGrayImage[2],0);
	cvNamedWindow("example",1);
	cvShowImage("example", img);
	for(i=0;i<3;i++)cvZero(subColorImage[i]);
		
	cvMerge(subGrayImage[0],0,0,0,subColorImage[0]);
	cvMerge(0,subGrayImage[0],0,0,subColorImage[1]);
	cvMerge(0,0,subGrayImage[0],0,subColorImage[2]);
	for(i=0;i<3;i++){
		cvSaveImage(name[i],subColorImage[i],NULL);
	}
	for(i=0;i<3;i++){
		cvNamedWindow(window[i],1);
		cvShowImage(window[i], subColorImage[i]);		
	}		
	cvWaitKey(0);
	cvReleaseImage(&img);
	cvDestroyWindow("example");
	for(i=0;i<3;i++){
		cvReleaseImage(&subGrayImage[i]);
		cvReleaseImage(&subColorImage[i]);
		cvDestroyWindow(window[i]);
	}

}

参考:

http://blog.csdn.net/xiaowei_cqu/article/details/7558657

【上篇】
【下篇】

抱歉!评论已关闭.