- OpenCV Python - Digit Recognition
- OpenCV Python - Feature Matching
- OpenCV Python - Feature Detection
- OpenCV Python - Meanshift/Camshift
- OpenCV Python - Face Detection
- OpenCV Python - Video from Images
- OpenCV Python - Images From Video
- OpenCV Python - Play Videos
- OpenCV Python - Capture Videos
- OpenCV Python - Fourier Transform
- OpenCV Python - Image Blending
- OpenCV Python - Image Addition
- OpenCV Python - Image Pyramids
- OpenCV Python - Template Matching
- OpenCV Python - Image Contours
- OpenCV Python - Transformations
- OpenCV Python - Color Spaces
- OpenCV Python - Histogram
- OpenCV Python - Edge Detection
- OpenCV Python - Image Filtering
- OpenCV Python - Image Threshold
- OpenCV Python - Resize and Rotate
- OpenCV Python - Add Trackbar
- OpenCV Python - Mouse Events
- OpenCV Python - Shapes and Text
- OpenCV Python - Bitwise Operations
- OpenCV Python - Image Properties
- OpenCV Python - Using Matplotlib
- OpenCV Python - Write Image
- OpenCV Python - Reading Image
- OpenCV Python - Environment
- OpenCV Python - Overview
- OpenCV Python - Home
OpenCV Python Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
OpenCV Python - Color Spaces
A color space is a mathematical model describing how colours can be represented. It is described in a specific, measurable, and fixed range of possible colors and luminance values.
OpenCV supports following well known color spaces −
RGB Color space − It is an additive color space. A color value is obtained by combination of red, green and blue colour values. Each is represented by a number ranging between 0 to 255.
HSV color space − H, S and V stand for Hue, Saturation and Value. This is an alternative color model to RGB. This model is supposed to be closer to the way a human eye perceives any colour. Hue value is between 0 to 179, whereas S and V numbers are between 0 to 255.
CMYK color space − In contrast to RGB, CMYK is a subtractive color model. The alphabets stand for Cyan, Magenta, Yellow and Black. White pght minus red leaves cyan, green subtracted from white leaves magenta, and white minus blue returns yellow. All the values are represented on the scale of 0 to 100 %.
CIELAB color space − The LAB color space has three components which are L for pghtness, A color components ranging from Green to Magenta and B for components from Blue to Yellow.
YCrCb color space − Here, Cr stands for R-Y and Cb stands for B-Y. This helps in separation of luminance from chrominance into different channels.
OpenCV supports conversion of image between color spaces with the help of cv2.cvtColor() function.
The command for the cv2.cvtColor() function is as follows −
cv.cvtColor(src, code, dst)
Conversion Codes
The conversion is governed by following predefined conversion codes.
Sr.No. | Conversion Code & Function |
---|---|
1 | cv.COLOR_BGR2BGRA Add alpha channel to RGB or BGR image. |
2 | cv.COLOR_BGRA2BGR Remove alpha channel from RGB or BGR image. |
3 | cv.COLOR_BGR2GRAY Convert between RGB/BGR and grayscale. |
4 | cv.COLOR_BGR2YCrCb Convert RGB/BGR to luma-chroma |
5 | cv.COLOR_BGR2HSV Convert RGB/BGR to HSV |
6 | cv.COLOR_BGR2Lab Convert RGB/BGR to CIE Lab |
7 | cv.COLOR_HSV2BGR Backward conversions HSV to RGB/BGR |
Example
Following program shows the conversion of original image with RGB color space to HSV and Gray schemes −
import cv2 img = cv2.imread( messi.jpg ) img1 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY ) img2 = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # Displaying the image cv2.imshow( original , img) cv2.imshow( Gray , img1) cv2.imshow( HSV , img2)