Bird
Raised Fist0
Computer Visionml~20 mins

Writing/saving images 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 Saving Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
1:30remaining
What is the output of this OpenCV image saving code?
Consider the following Python code using OpenCV to save an image. What will be the output or result after running this code?
Computer Vision
import cv2
import numpy as np

img = np.zeros((100, 100, 3), dtype=np.uint8)
cv2.imwrite('test_image.png', img)
print(cv2.imread('test_image.png').shape)
A(100, 100, 3)
B(100, 100)
CNone
DError: File not found
Attempts:
2 left
💡 Hint
Remember that OpenCV reads color images as 3-channel arrays by default.
Model Choice
intermediate
1:00remaining
Which image format is best for saving photos with lossless quality?
You want to save images without losing any quality for further machine learning processing. Which image format should you choose?
AJPEG
BBMP
CGIF
DPNG
Attempts:
2 left
💡 Hint
Consider which formats compress images without losing data.
Hyperparameter
advanced
1:30remaining
What does the 'quality' parameter control when saving JPEG images with OpenCV?
In OpenCV's cv2.imwrite function, you can specify parameters like cv2.IMWRITE_JPEG_QUALITY. What does this parameter control?
AThe compression level affecting image quality and file size
BThe color depth of the saved image
CThe image resolution in pixels
DThe file permissions of the saved image
Attempts:
2 left
💡 Hint
Think about how JPEG compression works.
🔧 Debug
advanced
1:30remaining
Why does this code fail to save the image correctly?
Look at this code snippet: import cv2 import numpy as np img = np.zeros((50, 50), dtype=np.uint8) cv2.imwrite('output.jpg', img) Why might the saved image appear as a black and white image instead of color?
AThe numpy array dtype must be float32 for color images
BThe file extension '.jpg' is incorrect for color images
CThe image array has only one channel, so it saves as grayscale
Dcv2.imwrite requires images to be in RGB order, not BGR
Attempts:
2 left
💡 Hint
Check the shape of the numpy array representing the image.
🧠 Conceptual
expert
2:00remaining
What is the main difference between cv2.imwrite and PIL.Image.save when saving images?
Both OpenCV's cv2.imwrite and PIL's Image.save can save images. What is a key difference in how they handle image data before saving?
AOpenCV only saves grayscale images, PIL saves color images
BOpenCV expects images in BGR format, PIL expects RGB format
CPIL compresses images automatically, OpenCV does not
DOpenCV saves images as numpy arrays, PIL saves as tensors
Attempts:
2 left
💡 Hint
Think about the color channel order each library uses.

Practice

(1/5)
1. What does the function cv2.imwrite() do in computer vision?
easy
A. Converts an image to grayscale
B. Reads an image from a file
C. Displays an image in a window
D. Saves an image to a file on disk

Solution

  1. Step 1: Understand the purpose of cv2.imwrite()

    This function is used to save image data to a file on your computer.
  2. Step 2: Differentiate from other OpenCV functions

    Functions like cv2.imread() read images, and cv2.imshow() display images, but cv2.imwrite() specifically saves images.
  3. Final Answer:

    Saves an image to a file on disk -> Option D
  4. Quick Check:

    cv2.imwrite() = Save image [OK]
Hint: Remember 'imwrite' means 'image write' to file [OK]
Common Mistakes:
  • Confusing imwrite with imread
  • Thinking it displays images
  • Assuming it converts image formats automatically
2. Which of the following is the correct syntax to save an image stored in variable img to a file named output.jpg using OpenCV?
easy
A. cv2.save('output.jpg', img)
B. cv2.imwrite('output.jpg', img)
C. cv2.write('output.jpg', img)
D. cv2.saveImage('output.jpg', img)

Solution

  1. Step 1: Recall the correct OpenCV function name

    The function to save images is cv2.imwrite(), not save or write.
  2. Step 2: Check the argument order

    The first argument is the filename as a string, the second is the image variable.
  3. Final Answer:

    cv2.imwrite('output.jpg', img) -> Option B
  4. Quick Check:

    Correct function and argument order = cv2.imwrite('output.jpg', img) [OK]
Hint: Use 'imwrite' with filename first, then image [OK]
Common Mistakes:
  • Using non-existent functions like cv2.save
  • Swapping argument order
  • Missing quotes around filename
3. What will be the output of the following code snippet?
import cv2
img = cv2.imread('input.png')
success = cv2.imwrite('saved.png', img)
print(success)
medium
A. True if image saved successfully, False otherwise
B. The saved image data
C. The filename 'saved.png'
D. An error message

Solution

  1. Step 1: Understand cv2.imwrite() return value

    This function returns a boolean: True if saving worked, False if it failed.
  2. Step 2: Analyze the print statement

    The code prints the boolean stored in success, so output is True or False.
  3. Final Answer:

    True if image saved successfully, False otherwise -> Option A
  4. Quick Check:

    imwrite() returns success boolean [OK]
Hint: imwrite returns True/False for success [OK]
Common Mistakes:
  • Expecting image data as output
  • Thinking it prints filename
  • Assuming it throws error on failure
4. Identify the error in this code snippet that tries to save an image:
import cv2
img = cv2.imread('photo.jpg')
cv2.imwrite(img, 'output.jpg')
medium
A. cv2.imread cannot read jpg files
B. cv2.imwrite requires file extension in filename
C. Arguments to cv2.imwrite are in wrong order
D. cv2.imwrite cannot save images

Solution

  1. Step 1: Check cv2.imwrite() argument order

    The first argument must be the filename string, second the image data.
  2. Step 2: Identify the mistake in the code

    The code passes img first and filename second, which is incorrect.
  3. Final Answer:

    Arguments to cv2.imwrite are in wrong order -> Option C
  4. Quick Check:

    Filename first, image second in imwrite() [OK]
Hint: Filename must be first argument in imwrite() [OK]
Common Mistakes:
  • Swapping filename and image arguments
  • Assuming imread can't read jpg
  • Thinking imwrite can't save images
5. You want to save a grayscale image stored in gray_img as a PNG file and ensure the save was successful. Which code snippet correctly does this?
hard
A. if cv2.imwrite('gray.png', gray_img): print('Saved successfully') else: print('Save failed')
B. cv2.imwrite(gray_img, 'gray.png') and print('Saved successfully')
C. cv2.imwrite('gray.png', gray_img) print('Saved successfully')
D. if cv2.imwrite('gray.png'): print('Saved successfully')

Solution

  1. Step 1: Use cv2.imwrite() with correct arguments

    The first argument is the filename string, second is the image data variable.
  2. Step 2: Check the return value to confirm success

    Use an if statement to check if cv2.imwrite() returns True, then print success message; else print failure.
  3. Final Answer:

    if cv2.imwrite('gray.png', gray_img): print('Saved successfully') else: print('Save failed') -> Option A
  4. Quick Check:

    Check imwrite() return before confirming save [OK]
Hint: Check imwrite() return value to confirm save success [OK]
Common Mistakes:
  • Swapping arguments in imwrite
  • Not checking if save succeeded
  • Passing wrong argument types