Bird
Raised Fist0
Computer Visionml~20 mins

Drawing on images (lines, rectangles, circles, text) in Computer Vision - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Image Drawing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output image after drawing a red line?
Given the following code that draws a red line on a blank image, what will be the color of the pixel at position (50, 50)?
Computer Vision
import numpy as np
import cv2

img = np.zeros((100, 100, 3), dtype=np.uint8)
cv2.line(img, (0, 0), (99, 99), (0, 0, 255), 2)
pixel_color = img[50, 50].tolist()
print(pixel_color)
A[0, 0, 0]
B[255, 0, 0]
C[0, 255, 0]
D[0, 0, 255]
Attempts:
2 left
💡 Hint
Remember OpenCV uses BGR color format, not RGB.
Model Choice
intermediate
2:00remaining
Which OpenCV function draws a filled rectangle?
You want to draw a filled blue rectangle on an image. Which function and parameter combination is correct?
Acv2.rectangle(img, (10, 10), (50, 50), (255, 0, 0), thickness=-1)
Bcv2.line(img, (10, 10), (50, 50), (255, 0, 0), thickness=-1)
Ccv2.rectangle(img, (10, 10), (50, 50), (255, 0, 0), thickness=0)
Dcv2.circle(img, (30, 30), 20, (255, 0, 0), thickness=0)
Attempts:
2 left
💡 Hint
In OpenCV, thickness=-1 fills the shape.
Hyperparameter
advanced
2:00remaining
Choosing thickness for drawing a circle
You want to draw a green circle with a radius of 30 pixels on an image. Which thickness value will draw only the circle's outline with a thickness of 5 pixels?
Athickness=-1
Bthickness=5
Cthickness=0
Dthickness=None
Attempts:
2 left
💡 Hint
Thickness=-1 fills the circle, positive thickness draws outline.
🔧 Debug
advanced
2:00remaining
Why does this text not appear on the image?
Consider this code snippet: import numpy as np import cv2 img = np.zeros((100, 200, 3), dtype=np.uint8) cv2.putText(img, 'Hi', (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2) Why might the text not be visible when displaying the image?
Computer Vision
import numpy as np
import cv2

img = np.zeros((100, 200, 3), dtype=np.uint8)
cv2.putText(img, 'Hi', (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
# Display code omitted
AThe image is not displayed or saved, so text is not visible.
BThe text color is white but the image is black, so text is visible.
CThe font scale is too small to see the text.
DThe coordinates (50, 50) place the text outside the image boundaries.
Attempts:
2 left
💡 Hint
Check if the image is actually shown or saved after drawing.
🧠 Conceptual
expert
2:00remaining
Why use BGR color format in OpenCV instead of RGB?
OpenCV uses BGR color format by default instead of the more common RGB. What is the main reason for this choice?
ABGR uses less memory than RGB.
BBGR is easier to convert to grayscale than RGB.
CBGR matches the order used by most cameras and image file formats internally.
DBGR is the standard color format in all image processing libraries.
Attempts:
2 left
💡 Hint
Think about how images are stored and captured by hardware.

Practice

(1/5)
1. Which OpenCV function is used to draw a rectangle on an image?
easy
A. cv2.line
B. cv2.rectangle
C. cv2.circle
D. cv2.putText

Solution

  1. Step 1: Understand drawing functions in OpenCV

    OpenCV provides specific functions for different shapes: cv2.line for lines, cv2.circle for circles, cv2.rectangle for rectangles, and cv2.putText for text.
  2. Step 2: Identify the function for rectangles

    The function named cv2.rectangle is designed to draw rectangles on images.
  3. Final Answer:

    cv2.rectangle -> Option B
  4. Quick Check:

    Rectangle drawing = cv2.rectangle [OK]
Hint: Rectangle drawing uses cv2.rectangle function [OK]
Common Mistakes:
  • Confusing cv2.line with rectangle drawing
  • Using cv2.circle for rectangles
  • Trying to draw text with cv2.rectangle
2. Which parameter in cv2.putText controls the thickness of the text?
easy
A. thickness
B. fontScale
C. fontFace
D. color

Solution

  1. Step 1: Review cv2.putText parameters

    The function cv2.putText has parameters: fontFace (font style), fontScale (size), color (text color), and thickness (line thickness of text).
  2. Step 2: Identify thickness parameter

    The thickness parameter controls how bold or thick the text lines appear.
  3. Final Answer:

    thickness -> Option A
  4. Quick Check:

    Text thickness = thickness parameter [OK]
Hint: Thickness of text is set by 'thickness' parameter [OK]
Common Mistakes:
  • Confusing fontScale with thickness
  • Using color to control thickness
  • Mistaking fontFace for thickness
3. What will be the color of the line drawn by this code snippet?
cv2.line(img, (10, 10), (100, 10), (0, 0, 255), 2)
medium
A. Red
B. Green
C. Blue
D. Black

Solution

  1. Step 1: Understand BGR color format in OpenCV

    OpenCV uses BGR order for colors, so (0, 0, 255) means Blue=0, Green=0, Red=255.
  2. Step 2: Identify the color from the tuple

    Since only the last value (Red) is 255, the line color will be bright red.
  3. Final Answer:

    Red -> Option A
  4. Quick Check:

    BGR (0,0,255) = Red [OK]
Hint: Remember OpenCV colors are BGR, last value 255 means Red [OK]
Common Mistakes:
  • Assuming (0,0,255) is blue (RGB confusion)
  • Mixing up color order
  • Ignoring OpenCV's BGR format
4. Identify the error in this code that tries to draw a circle:
cv2.circle(img, (50, 50), -10, (255, 0, 0), 3)
medium
A. Center coordinates must be floats
B. Color tuple is wrong format
C. Thickness cannot be 3
D. Negative radius is invalid

Solution

  1. Step 1: Check circle parameters

    The radius parameter must be a positive integer representing the circle size.
  2. Step 2: Identify invalid radius

    The radius given is -10, which is invalid and will cause an error.
  3. Final Answer:

    Negative radius is invalid -> Option D
  4. Quick Check:

    Radius must be positive integer [OK]
Hint: Radius must be positive; negative values cause errors [OK]
Common Mistakes:
  • Using negative radius values
  • Thinking thickness 3 is invalid
  • Assuming center coordinates must be floats
5. You want to draw a blue rectangle with thickness 4 and label it "Object" in white text above it. Which code snippet correctly does this?
img = cv2.imread('image.jpg')
start = (30, 30)
end = (150, 150)
# Options below
hard
A. cv2.rectangle(img, start, end, (255, 0, 0), 2) cv2.putText(img, 'Object', (30, 20), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 4)
B. cv2.rectangle(img, start, end, (0, 0, 255), 4) cv2.putText(img, 'Object', (30, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 0), 2)
C. cv2.rectangle(img, start, end, (255, 0, 0), 4) cv2.putText(img, 'Object', (30, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 255, 255), 2)
D. cv2.rectangle(img, start, end, (0, 255, 0), 4) cv2.putText(img, 'Object', (30, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 255, 255), 2)

Solution

  1. Step 1: Identify blue color in BGR

    Blue in BGR is (255, 0, 0), so rectangle color must be (255, 0, 0) with thickness 4.
  2. Step 2: Check text color and position

    Text "Object" should be white (255, 255, 255) and placed above rectangle at (30, 20) with reasonable font scale and thickness.
  3. Final Answer:

    Blue rectangle with thickness 4 and white "Object" text above -> Option C
  4. Quick Check:

    Blue = (255,0,0), white text, thickness 4 [OK]
Hint: Blue is (255,0,0); white text is (255,255,255) [OK]
Common Mistakes:
  • Mixing up BGR color order
  • Using wrong thickness values
  • Placing text inside rectangle instead of above