우선의
감사합니다, 당신은 OpenCV의 기본 사항을 통해 이동 및 이미지 처리의 다른 부분으로 관심을 설정해야합니다. 당신이 요청하는
cv::Mat img = Read the image off the disk or do something to fill the image.
은 RGB가
img.at<cv::Vec3b>(x,y);
값하지만 BGR입니다 역의 값을 줄 것이다 액세스하려면 아주 기본적인 당신이 OpenCV의 2.1을 사용하여 높은됩니다 가정입니다. 그래서 이것을 메모 해 두십시오. 기본적으로 액세스되는 cv :: Vec3b 유형입니다.
img.at<cv::Vec3b>(x,y)[0];//B
img.at<cv::Vec3b>(x,y)[1];//G
img.at<cv::Vec3b>(x,y)[2];//R
또는
Vec3f pixel = img.at<Vec3f>(x, y);
int b = pixel[0];
int g = pixel[1];
int r = pixel[2];
이제 RGB 채널로 이미지를 분할에 당신이 OpenCV의 원시적 인 C 스타일에 이제 아래로 다음
을 사용할 수 있습니다 에게 당신을 (C와 C++ 스타일이 지원) cvSplit 함수를 사용할 수 있습니다.
IplImage* rgb = cvLoatImage("C://MyImage.bmp");
//now create three single channel images for the channel separation
IplImage* r = cvCreateImage(cvGetSize(rgb), rgb->depth,1);
IplImage* g = cvCreateImage(cvGetSize(rgb), rgb->depth,1);
IplImage* b = cvCreateImage(cvGetSize(rgb), rgb->depth,1);
cvSplit(rgb,b,g,r,NULL);
OpenCV 2 CookBook OpenCV에서 최고의 책 중 하나입니다. 많이 도와 드리겠습니다.