Computer Vision with OpenCV & Python Exam 2026: Graduate-Level
Practice Test — Image Processing, Feature Detection, Object
Recognition, Video Analysis & Deep Learning — 195 Multiple-Choice
Questions with Answers & Detailed Rationales
Section 1: Image Fundamentals and Manipulation
1. Question
A digital image is fundamentally a multi-dimensional array. In the context of OpenCV's
default color space (BGR), what is the specific meaning of the value at image[50, 100, 2]?
A. The blue channel intensity for the pixel at row 50, column 100.
B. The green channel intensity for the pixel at row 100, column 50.
C. The red channel intensity for the pixel at row 50, column 100.
D. The grayscale intensity for the pixel at row 100, column 50.
Correct Answer: C
Explanation: OpenCV uses BGR color format, so index 2 corresponds to the red channel. The
coordinates are [row, column, channel].
2. Question
You are building a system to analyze traffic flow. You load a video and need to efficiently
process only the cars moving on a specific lane, which occupies the left half of the frame.
Which OpenCV NumPy slicing operation correctly isolates this region for processing?
A. roi = frame[0:height, 0:width//2]
B. roi = frame[0:height//2, 0:width]
C. roi = frame[height//2:height, 0:width]
D. roi = frame[0:height, width//2:width]
,Correct Answer: A
Explanation: To get the left half, you slice all rows (0:height) and the first half of columns
(0:width//2). This creates a view, not a copy.
3. Question
When converting a BGR image to grayscale using cv2.cvtColor, what is the primary
perceptual reason for the specific weighted sum of the R, G, and B channels used in the
conversion?
A. It is a simple average, giving each color channel equal importance.
B. It mimics the human eye's higher sensitivity to green light and lower sensitivity to blue
light.
C. It is computationally the fastest method available for real-time applications.
D. It ensures that the resulting grayscale values are always within the 0-255 range.
Correct Answer: B
Explanation: The luminance formula (e.g., 0.299R + 0.587G + 0.114*B) is designed to match
human perception of brightness, which is most sensitive to green.
4. Question
You are tasked with creating a synthetic image to test an algorithm. You need a 200x300
pixel image, filled with a uniform solid white color. Which code snippet correctly
accomplishes this using NumPy and OpenCV?
A. img = np.zeros((200, 300, 3), dtype=np.uint8)
B. img = np.ones((300, 200, 3), dtype=np.uint8) * 255
C. img = np.full((200, 300, 3), 255, dtype=np.uint8)
,D. img = cv2.createImage((200, 300), cv2.CV_8UC3, (255, 255, 255))
Correct Answer: C
Explanation: np.full is an efficient way to create an array of a specific shape, filled with a
single value. np.ones() * 255 also works but is less direct.
5. Question
A common task is to draw a bounding box around a detected object. If you have coordinates
(x, y, w, h), what are the correct top-left and bottom-right corner points for the cv2.rectangle
function?
A. Top-left: (x, y), Bottom-right: (x + w, y + h)
B. Top-left: (x, y), Bottom-right: (w, h)
C. Top-left: (x + w, y + h), Bottom-right: (x, y)
D. Top-left: (x, y), Bottom-right: (w - x, h - y)
Correct Answer: A
Explanation: The top-left corner is the origin (x, y), and the bottom-right corner is found by
adding the width and height to the origin coordinates.
6. Question
What is the primary effect of applying cv2.GaussianBlur with a large kernel size (e.g., 31x31)
compared to a small one (e.g., 3x3) on an image?
A. It enhances edges and fine details more aggressively.
B. It increases the overall brightness of the image.
C. It produces a more pronounced smoothing or blurring effect.
, D. It converts the image into a binary (black and white) format.
Correct Answer: C
Explanation: A larger kernel size means a larger neighborhood of pixels is averaged, leading
to a stronger blurring effect that removes more high-frequency detail.
7. Question
You need to detect the edges of a white piece of paper on a dark table. The image has some
noise. Which preprocessing step is most crucial before applying an edge detector like Canny?
A. Increasing the image's contrast to make the paper brighter.
B. Applying a blurring filter, such as a Gaussian blur, to reduce noise.
C. Converting the image to the HSV color space.
D. Rotating the image to align the paper with the axes.
Correct Answer: B
Explanation: Edge detectors are highly sensitive to noise, which can create false edges. A
blurring filter is a standard best practice to smooth the image and suppress noise before
edge detection.
8. Question
In OpenCV, what is the fundamental difference between cv2.resize and image[0:100, 0:100]?
A. cv2.resize crops the image, while slicing scales it.
B. Slicing creates a copy, while cv2.resize creates a view.
C. cv2.resize changes the image dimensions, while slicing extracts a region of interest.
D. They perform the exact same operation and are interchangeable.
Practice Test — Image Processing, Feature Detection, Object
Recognition, Video Analysis & Deep Learning — 195 Multiple-Choice
Questions with Answers & Detailed Rationales
Section 1: Image Fundamentals and Manipulation
1. Question
A digital image is fundamentally a multi-dimensional array. In the context of OpenCV's
default color space (BGR), what is the specific meaning of the value at image[50, 100, 2]?
A. The blue channel intensity for the pixel at row 50, column 100.
B. The green channel intensity for the pixel at row 100, column 50.
C. The red channel intensity for the pixel at row 50, column 100.
D. The grayscale intensity for the pixel at row 100, column 50.
Correct Answer: C
Explanation: OpenCV uses BGR color format, so index 2 corresponds to the red channel. The
coordinates are [row, column, channel].
2. Question
You are building a system to analyze traffic flow. You load a video and need to efficiently
process only the cars moving on a specific lane, which occupies the left half of the frame.
Which OpenCV NumPy slicing operation correctly isolates this region for processing?
A. roi = frame[0:height, 0:width//2]
B. roi = frame[0:height//2, 0:width]
C. roi = frame[height//2:height, 0:width]
D. roi = frame[0:height, width//2:width]
,Correct Answer: A
Explanation: To get the left half, you slice all rows (0:height) and the first half of columns
(0:width//2). This creates a view, not a copy.
3. Question
When converting a BGR image to grayscale using cv2.cvtColor, what is the primary
perceptual reason for the specific weighted sum of the R, G, and B channels used in the
conversion?
A. It is a simple average, giving each color channel equal importance.
B. It mimics the human eye's higher sensitivity to green light and lower sensitivity to blue
light.
C. It is computationally the fastest method available for real-time applications.
D. It ensures that the resulting grayscale values are always within the 0-255 range.
Correct Answer: B
Explanation: The luminance formula (e.g., 0.299R + 0.587G + 0.114*B) is designed to match
human perception of brightness, which is most sensitive to green.
4. Question
You are tasked with creating a synthetic image to test an algorithm. You need a 200x300
pixel image, filled with a uniform solid white color. Which code snippet correctly
accomplishes this using NumPy and OpenCV?
A. img = np.zeros((200, 300, 3), dtype=np.uint8)
B. img = np.ones((300, 200, 3), dtype=np.uint8) * 255
C. img = np.full((200, 300, 3), 255, dtype=np.uint8)
,D. img = cv2.createImage((200, 300), cv2.CV_8UC3, (255, 255, 255))
Correct Answer: C
Explanation: np.full is an efficient way to create an array of a specific shape, filled with a
single value. np.ones() * 255 also works but is less direct.
5. Question
A common task is to draw a bounding box around a detected object. If you have coordinates
(x, y, w, h), what are the correct top-left and bottom-right corner points for the cv2.rectangle
function?
A. Top-left: (x, y), Bottom-right: (x + w, y + h)
B. Top-left: (x, y), Bottom-right: (w, h)
C. Top-left: (x + w, y + h), Bottom-right: (x, y)
D. Top-left: (x, y), Bottom-right: (w - x, h - y)
Correct Answer: A
Explanation: The top-left corner is the origin (x, y), and the bottom-right corner is found by
adding the width and height to the origin coordinates.
6. Question
What is the primary effect of applying cv2.GaussianBlur with a large kernel size (e.g., 31x31)
compared to a small one (e.g., 3x3) on an image?
A. It enhances edges and fine details more aggressively.
B. It increases the overall brightness of the image.
C. It produces a more pronounced smoothing or blurring effect.
, D. It converts the image into a binary (black and white) format.
Correct Answer: C
Explanation: A larger kernel size means a larger neighborhood of pixels is averaged, leading
to a stronger blurring effect that removes more high-frequency detail.
7. Question
You need to detect the edges of a white piece of paper on a dark table. The image has some
noise. Which preprocessing step is most crucial before applying an edge detector like Canny?
A. Increasing the image's contrast to make the paper brighter.
B. Applying a blurring filter, such as a Gaussian blur, to reduce noise.
C. Converting the image to the HSV color space.
D. Rotating the image to align the paper with the axes.
Correct Answer: B
Explanation: Edge detectors are highly sensitive to noise, which can create false edges. A
blurring filter is a standard best practice to smooth the image and suppress noise before
edge detection.
8. Question
In OpenCV, what is the fundamental difference between cv2.resize and image[0:100, 0:100]?
A. cv2.resize crops the image, while slicing scales it.
B. Slicing creates a copy, while cv2.resize creates a view.
C. cv2.resize changes the image dimensions, while slicing extracts a region of interest.
D. They perform the exact same operation and are interchangeable.