使用OpenCV分离RGB颜色通道

最近在使用OpenCV写毕业设计,接触图像编程不久。学习时也遇到一些困惑,在此与大家分享一下。

OpenCV分离RGB颜色通道。示例图:

使用OpenCV分离RGB颜色通道_第1张图片

分离出来的效果图如下:

使用OpenCV分离RGB颜色通道_第2张图片使用OpenCV分离RGB颜色通道_第3张图片使用OpenCV分离RGB颜色通道_第4张图片

程序源代码:

#include "cv.h"'
#include "cxcore.h"
#include "highgui.h"
#include <iostream>
using namespace std;
int main ()
{
	IplImage* pImage = cvLoadImage("RGB.jpg",1);

	IplImage *pR = cvCreateImage(cvGetSize(pImage),IPL_DEPTH_8U,1);  
	IplImage *pG = cvCreateImage(cvGetSize(pImage),IPL_DEPTH_8U,1);  
	IplImage *pB = cvCreateImage(cvGetSize(pImage),IPL_DEPTH_8U,1);  

	IplImage *pRed = cvCreateImage(cvGetSize(pImage),IPL_DEPTH_8U,3);  
	IplImage *pGreen = cvCreateImage(cvGetSize(pImage),IPL_DEPTH_8U,3);  
	IplImage *pBlue = cvCreateImage(cvGetSize(pImage),IPL_DEPTH_8U,3);  

	cvZero(pRed);
	cvZero(pGreen);
	cvZero(pBlue);

	cvSplit(pImage,pB,pG,pR,NULL);

	cvMerge(0,0,pR,0,pRed);
	cvMerge(0,pG,0,0,pGreen);
	cvMerge(pB,0,0,0,pBlue);


	cvShowImage("pSrc",pImage);
	cvShowImage("pR",pRed);
	cvShowImage("pG",pGreen);
	cvShowImage("pB",pBlue);

	cvSaveImage("Red.jpg",pRed);
	cvSaveImage("Green.jpg",pGreen);
	cvSaveImage("Blue.jpg",pBlue);

	cvWaitKey(0);
	cvReleaseImage(&pImage);
	cvReleaseImage(&pR);
	cvReleaseImage(&pG);
	cvReleaseImage(&pB);
}
完!

你可能感兴趣的:(使用OpenCV分离RGB颜色通道)