영상 RGB추출
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <stdio.h>
#include "opencv/cv.h"
#include "opencv/highgui.h"
#include <iostream>
using namespace std;
using namespace cv;
void main()
{
IplImage *rb[2];
IplImage *img = cvLoadImage("sp.jpg");
IplImage *brightness = cvCreateImage(cvGetSize(img), 8, 1);
//원본영상출력
cvNamedWindow("origin");
cvShowImage("origin", img);
//rb는Red, Blue 채널이들어가는배열이다.
for (int i = 0; i<2; i++)
rb[i] = cvCreateImage(cvGetSize(img), 8, 1);
//RGB 모델을YCbCr모델로바꾼다
cvCvtColor(img, img, CV_BGR2YCrCb);
//YCbCr모델에서밝기, 빨강, 파랑순으로채널을나눈다
cvCvtPixToPlane(img, brightness, rb[0], rb[1], NULL);
//빨강과파랑채널에서값이큰것(색이진한것)만뽑는다
cvMaxS(rb[0], 150, rb[0]);
cvMaxS(rb[1], 150, rb[1]);
//화면에출력한다
cvNamedWindow("Red");
cvNamedWindow("Blue");
cvShowImage("Red", rb[0]);
cvShowImage("Blue", rb[1]);
cvWaitKey(0);
//자원해제
cvReleaseImage(&rb[0]);
cvReleaseImage(&rb[1]);
cvReleaseImage(&brightness);
cvReleaseImage(&img);
}