Bird
Raised Fist0
Computer Visionml~5 mins

Color spaces (RGB, BGR, grayscale, HSV) in Computer Vision - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does RGB stand for in color spaces?
RGB stands for Red, Green, and Blue. It is a color space where colors are created by mixing these three colors in different amounts.
Click to reveal answer
beginner
How is BGR different from RGB?
BGR is similar to RGB but the order of colors is reversed: Blue, Green, Red. Some computer vision libraries like OpenCV use BGR instead of RGB.
Click to reveal answer
beginner
What is grayscale and when is it used?
Grayscale is a color space that uses shades of gray, from black to white. It has only one channel representing brightness. It is used to simplify images and reduce data size.
Click to reveal answer
intermediate
What does HSV stand for and why is it useful?
HSV stands for Hue, Saturation, and Value. It separates color information (hue) from brightness (value), making it easier to adjust colors or detect objects by color.
Click to reveal answer
beginner
Why might you convert an image from RGB to grayscale?
Converting to grayscale reduces the image to one channel, which simplifies processing and speeds up tasks like edge detection or object recognition when color is not important.
Click to reveal answer
Which color space uses channels ordered as Blue, Green, Red?
ABGR
BRGB
CHSV
DGrayscale
What does the 'H' in HSV represent?
AHeat
BHeight
CHue Saturation
DHue
Which color space is best for simplifying an image to shades of gray?
ARGB
BHSV
CGrayscale
DBGR
Why do some libraries use BGR instead of RGB?
ABecause BGR is easier to understand
BBecause of historical reasons and hardware compatibility
CBecause BGR has more colors
DBecause BGR is faster to process
In HSV, what does the 'V' channel control?
AValue or brightness
BVolume
CVibrance
DVisibility
Explain the differences between RGB, BGR, grayscale, and HSV color spaces.
Think about how each color space represents color and brightness.
You got /4 concepts.
    Describe a situation where converting an image to grayscale is helpful.
    Consider tasks that only need shape or brightness information.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which color space is commonly used by OpenCV as the default when reading images?
      easy
      A. HSV
      B. BGR
      C. Grayscale
      D. RGB

      Solution

      1. Step 1: Understand OpenCV image reading default

        OpenCV reads images using the BGR color space by default, not RGB.
      2. Step 2: Compare common color spaces

        RGB is common in many libraries, but OpenCV specifically uses BGR order for color images.
      3. Final Answer:

        BGR -> Option B
      4. Quick Check:

        OpenCV default color space = BGR [OK]
      Hint: Remember OpenCV uses BGR, not RGB by default [OK]
      Common Mistakes:
      • Confusing RGB with BGR as default
      • Thinking grayscale is default for color images
      • Assuming HSV is default color space
      2. Which of the following is the correct OpenCV Python code to convert an image from BGR to grayscale?
      easy
      A. gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
      B. gray = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR)
      C. gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
      D. gray = cv2.cvtColor(image, cv2.COLOR_HSV2GRAY)

      Solution

      1. Step 1: Identify correct color conversion code

        To convert from BGR to grayscale, use cv2.COLOR_BGR2GRAY in cv2.cvtColor.
      2. Step 2: Check other options for correctness

        Options A, C, and D use wrong conversions or directions.
      3. Final Answer:

        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) -> Option C
      4. Quick Check:

        BGR to grayscale uses cv2.COLOR_BGR2GRAY [OK]
      Hint: Use cv2.COLOR_BGR2GRAY to convert BGR to grayscale [OK]
      Common Mistakes:
      • Using RGB instead of BGR conversion code
      • Trying to convert grayscale to BGR instead
      • Using HSV conversion code incorrectly
      3. What will be the shape of the output image after converting a color image of shape (480, 640, 3) from BGR to grayscale using OpenCV?
      medium
      A. (480, 640)
      B. (640, 480)
      C. (480, 640, 3)
      D. (480, 640, 1)

      Solution

      1. Step 1: Understand input image shape

        The input image has shape (480, 640, 3), meaning height=480, width=640, and 3 color channels.
      2. Step 2: Effect of BGR to grayscale conversion

        Converting to grayscale removes color channels, resulting in a 2D array with shape (480, 640).
      3. Final Answer:

        (480, 640) -> Option A
      4. Quick Check:

        Grayscale image shape = (height, width) [OK]
      Hint: Grayscale images have 2D shape, no color channels [OK]
      Common Mistakes:
      • Assuming grayscale keeps 3 channels
      • Swapping height and width in shape
      • Expecting a single channel dimension like (480,640,1)
      4. You wrote this code to convert an image from BGR to HSV but got incorrect results:
      hsv = cv2.cvtColor(image, cv2.COLOR_RGB2HSV)

      What is the likely cause of the incorrect results?
      medium
      A. cv2.cvtColor cannot convert to HSV color space
      B. cv2.COLOR_RGB2HSV is not a valid conversion code
      C. The image must be grayscale before converting to HSV
      D. The image is in BGR, but conversion expects RGB input

      Solution

      1. Step 1: Check image color space and conversion code

        The image is in BGR format by default, but the code uses COLOR_RGB2HSV which expects RGB input.
      2. Step 2: Identify mismatch causing incorrect results

        Using COLOR_RGB2HSV on a BGR image causes incorrect conversion; correct code is COLOR_BGR2HSV.
      3. Final Answer:

        The image is in BGR, but conversion expects RGB input -> Option D
      4. Quick Check:

        Use matching color space codes for input image [OK]
      Hint: Match input image color space with conversion code [OK]
      Common Mistakes:
      • Using RGB conversion code on BGR images
      • Thinking grayscale is needed before HSV
      • Believing cv2.cvtColor can't convert to HSV
      5. You want to detect red objects in an image using HSV color space. Which step is essential before applying a color range mask for red detection?
      hard
      A. Convert the image from BGR to HSV using cv2.COLOR_BGR2HSV
      B. Convert the image from grayscale to HSV
      C. Convert the image from RGB to grayscale
      D. Apply a Gaussian blur before converting to BGR

      Solution

      1. Step 1: Understand color detection in HSV

        HSV color space separates color information, making it easier to detect specific colors like red.
      2. Step 2: Convert image to HSV from correct input space

        Since OpenCV images are BGR by default, convert from BGR to HSV using cv2.COLOR_BGR2HSV before masking.
      3. Final Answer:

        Convert the image from BGR to HSV using cv2.COLOR_BGR2HSV -> Option A
      4. Quick Check:

        Convert BGR to HSV before color masking [OK]
      Hint: Always convert BGR to HSV before color range masking [OK]
      Common Mistakes:
      • Skipping conversion or using wrong color space
      • Trying to convert grayscale to HSV
      • Applying blur before correct color conversion