Bird
Raised Fist0
Computer Visionml~5 mins

First image processing program in Computer Vision

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
Introduction

We use image processing to help computers understand and change pictures. This is the first step to teach computers to see like humans.

You want to open and show a picture on your computer.
You need to change a picture to black and white.
You want to resize a photo to fit on a website.
You want to find simple details like edges or colors in a picture.
Syntax
Computer Vision
import cv2

# Load an image from file
image = cv2.imread('path_to_image.jpg')

# Show the image in a window
cv2.imshow('Image Window', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Use cv2.imread() to load an image from your computer.

cv2.imshow() opens a window to display the image. cv2.waitKey(0) waits for a key press to close the window.

Examples
This loads a color image and shows it in a window.
Computer Vision
import cv2

# Load and show a color image
image = cv2.imread('flower.jpg')
cv2.imshow('Color Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
This loads the same image but in black and white.
Computer Vision
import cv2

# Load image in grayscale (black and white)
gray_image = cv2.imread('flower.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Grayscale Image', gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
This makes the image smaller and shows it.
Computer Vision
import cv2

# Resize image to half its size
image = cv2.imread('flower.jpg')
small_image = cv2.resize(image, (image.shape[1]//2, image.shape[0]//2))
cv2.imshow('Small Image', small_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Sample Model

This program loads a color image, changes it to black and white, shows both, and prints their sizes.

Computer Vision
import cv2

# Load an image
image = cv2.imread('flower.jpg')

# Convert to grayscale
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Show original and grayscale images
cv2.imshow('Original Image', image)
cv2.imshow('Grayscale Image', gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Print image shapes
print(f'Original image shape: {image.shape}')
print(f'Grayscale image shape: {gray_image.shape}')
OutputSuccess
Important Notes

Make sure the image file path is correct or the program will not load the image.

Color images have 3 channels (blue, green, red), grayscale has 1 channel.

Use cv2.destroyAllWindows() to close all image windows properly.

Summary

Image processing lets computers open and change pictures.

Use OpenCV functions like imread, imshow, and cvtColor to work with images.

Showing images and printing their size helps understand what the program does.

Practice

(1/5)
1. What does the OpenCV function imread do in an image processing program?
easy
A. It displays an image on the screen.
B. It reads an image file and loads it into the program.
C. It converts an image from color to grayscale.
D. It saves an image to a file.

Solution

  1. Step 1: Understand the purpose of imread

    The function imread is used to load an image from a file into the program's memory.
  2. Step 2: Differentiate from other functions

    Functions like imshow display images, and cvtColor changes image colors, so they do not read files.
  3. Final Answer:

    It reads an image file and loads it into the program. -> Option B
  4. Quick Check:

    imread = load image [OK]
Hint: imread always loads images from files [OK]
Common Mistakes:
  • Confusing imread with imshow
  • Thinking imread changes image colors
  • Assuming imread saves images
2. Which of the following is the correct syntax to display an image stored in variable img using OpenCV?
easy
A. cv2.display(img)
B. cv2.showimage(img)
C. cv2.show('Window', img)
D. cv2.imshow('Window', img)

Solution

  1. Step 1: Recall the OpenCV display function

    The correct function to show an image is cv2.imshow, which takes a window name and the image variable.
  2. Step 2: Check the syntax of options

    Only cv2.imshow('Window', img) uses cv2.imshow with correct parameters: a string window name and the image.
  3. Final Answer:

    cv2.imshow('Window', img) -> Option D
  4. Quick Check:

    imshow = show image [OK]
Hint: imshow needs a window name and image [OK]
Common Mistakes:
  • Using non-existent functions like display or showimage
  • Forgetting the window name argument
  • Swapping argument order
3. What will be the output of this code snippet?
import cv2
img = cv2.imread('photo.jpg')
print(img.shape)
medium
A. It prints the image pixel values.
B. It raises an error because shape is not valid.
C. It prints the dimensions of the image as (height, width, channels).
D. It prints the file size of 'photo.jpg'.

Solution

  1. Step 1: Understand what img.shape returns

    In OpenCV, img.shape gives the dimensions of the image as a tuple: (height, width, number of color channels).
  2. Step 2: Differentiate from other outputs

    It does not print pixel values or file size, and shape is a valid attribute for images loaded by imread.
  3. Final Answer:

    It prints the dimensions of the image as (height, width, channels). -> Option C
  4. Quick Check:

    img.shape = image size [OK]
Hint: shape shows image size and channels [OK]
Common Mistakes:
  • Expecting pixel data instead of shape
  • Thinking shape is a method, not attribute
  • Confusing file size with image dimensions
4. Identify the error in this code snippet:
import cv2
img = cv2.imread('image.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image')
cv2.waitKey(0)
cv2.destroyAllWindows()
medium
A. Missing the image argument in cv2.imshow function.
B. cv2.cvtColor cannot convert color images.
C. cv2.waitKey requires an argument of 1, not 0.
D. cv2.destroyAllWindows should be called before imshow.

Solution

  1. Step 1: Check the usage of cv2.imshow

    The function cv2.imshow requires two arguments: a window name and the image to display. Here, the image argument is missing.
  2. Step 2: Verify other function calls

    cv2.cvtColor correctly converts color images, waitKey(0) waits indefinitely, and destroyAllWindows is correctly placed after showing images.
  3. Final Answer:

    Missing the image argument in cv2.imshow function. -> Option A
  4. Quick Check:

    imshow needs image argument [OK]
Hint: imshow always needs image to show [OK]
Common Mistakes:
  • Forgetting the image argument in imshow
  • Misunderstanding waitKey argument
  • Calling destroyAllWindows too early
5. You want to write a program that reads an image, converts it to grayscale, and then saves the grayscale image. Which sequence of OpenCV functions is correct?
hard
A. cv2.imread() -> cv2.cvtColor() -> cv2.imwrite()
B. cv2.imshow() -> cv2.cvtColor() -> cv2.imwrite()
C. cv2.imread() -> cv2.imshow() -> cv2.cvtColor()
D. cv2.imwrite() -> cv2.imread() -> cv2.cvtColor()

Solution

  1. Step 1: Understand the task steps

    The program must first read the image, then convert it to grayscale, and finally save the new image.
  2. Step 2: Match functions to steps

    cv2.imread() reads the image, cv2.cvtColor() converts color spaces, and cv2.imwrite() saves the image to a file.
  3. Final Answer:

    cv2.imread() -> cv2.cvtColor() -> cv2.imwrite() -> Option A
  4. Quick Check:

    Read -> Convert -> Save = imread, cvtColor, imwrite [OK]
Hint: Read first, convert second, save last [OK]
Common Mistakes:
  • Trying to save before reading
  • Showing image before converting
  • Mixing order of functions