Zunächst einmal müssen Sie die Grundlagen der OpenCV gehen und richten Sie Ihre Aufmerksamkeit auf andere Teile der Bildverarbeitung. Was Sie fragen, ist ziemlich einfach, und vorausgesetzt, Sie werden mit OpenCV 2.1 und höher werden,
cv::Mat img = Read the image off the disk or do something to fill the image.
Um die RGB-Werte
Zugriff
img.at<cv::Vec3b>(x,y);
Aber würden die Werte in umgekehrter Richtung geben, die BGR ist. Achte also darauf, dass du das notierst. Grundsätzlich ein cv :: Vec3b-Typ, auf den zugegriffen wird.
img.at<cv::Vec3b>(x,y)[0];//B
img.at<cv::Vec3b>(x,y)[1];//G
img.at<cv::Vec3b>(x,y)[2];//R
oder
Vec3f pixel = img.at<Vec3f>(x, y);
int b = pixel[0];
int g = pixel[1];
int r = pixel[2];
Jetzt auf das Bild in RGB-Kanäle aufteilen Sie folgende
nun auf primitive C Stil von OpenCV verwenden können (Es C und C++ Stil unterstützt) Sie kann die cvSplit Funktion verwenden
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 Ist eines der besten Bücher über OpenCV. Wird dir viel helfen.