您的位置:首页 > 运维架构

使用OpenCV分离RGB颜色通道

2014-03-06 12:17 375 查看
最近在使用OpenCV写毕业设计,接触图像编程不久。学习时也遇到一些困惑,在此与大家分享一下。

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



分离出来的效果图如下:







程序源代码:

#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);
}
完!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: