OpenCV uses BGR (Blue-Green-Red) as its default color format:
Mat img = imread("image.jpg"); // Loaded as BGR// Access pixelVec3b pixel = img.at<Vec3b>(y, x);uchar blue = pixel[0];uchar green = pixel[1];uchar red = pixel[2];
Most other libraries (including matplotlib, PIL) use RGB order. Always convert when needed.
// Color to grayscaleMat gray;cvtColor(img, gray, COLOR_BGR2GRAY);// Grayscale to color (creates 3 identical channels)cvtColor(gray, img, COLOR_GRAY2BGR);
Mat lab;cvtColor(img, lab, COLOR_BGR2Lab);// Useful for color-based operationsvector<Mat> channels;split(lab, channels);Mat L = channels[0]; // Lightness only
Mat ycrcb;cvtColor(img, ycrcb, COLOR_BGR2YCrCb);// Skin color range in YCrCbMat skinMask;inRange(ycrcb, Scalar(0, 133, 77), Scalar(255, 173, 127), skinMask);