Bird
Raised Fist0
Computer Visionml~5 mins

Cropping images 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
Cropping images helps focus on important parts by cutting out unwanted areas. It makes images simpler and clearer for analysis.
You want to zoom in on a face in a photo to recognize emotions.
You need to remove background clutter before training a model.
You want to prepare images to a fixed size for a neural network.
You want to highlight a product in a picture for better detection.
You want to reduce image size to save memory and speed up processing.
Syntax
Computer Vision
cropped_image = image[y_start:y_end, x_start:x_end]
Coordinates start at the top-left corner of the image.
y corresponds to rows (height), x corresponds to columns (width).
Examples
Crops the image from row 50 to 149 and column 100 to 199.
Computer Vision
cropped = image[50:150, 100:200]
Crops the top-left 100x100 pixels of the image.
Computer Vision
cropped = image[:100, :100]
Crops from row 100 to bottom and column 50 to right edge.
Computer Vision
cropped = image[100:, 50:]
Sample Model
This code creates a black image with a white square. Then it crops the white square area and prints the cropped image size and center pixel color.
Computer Vision
import cv2
import numpy as np

# Create a simple 200x200 image with a white square on black background
image = np.zeros((200, 200, 3), dtype=np.uint8)
cv2.rectangle(image, (50, 50), (150, 150), (255, 255, 255), -1)

# Crop the white square area
cropped_image = image[50:151, 50:151]

# Check the shape of cropped image
print('Cropped image shape:', cropped_image.shape)

# Check pixel value at center (should be white)
center_pixel = cropped_image[50, 50]
print('Center pixel value:', center_pixel)
OutputSuccess
Important Notes
Cropping does not change the original image; it creates a new view or copy.
Be careful with coordinates to avoid errors or empty crops.
Cropping is useful before feeding images into models to focus on relevant parts.
Summary
Cropping cuts out a part of an image using row and column ranges.
It helps focus on important areas and reduces image size.
Use slicing syntax image[y_start:y_end, x_start:x_end] to crop.

Practice

(1/5)
1. What does cropping an image do in computer vision?
easy
A. Increases the image resolution
B. Changes the color of the entire image
C. Cuts out a part of the image using row and column ranges
D. Rotates the image by 90 degrees

Solution

  1. Step 1: Understand cropping concept

    Cropping means selecting a smaller part of the image by specifying rows and columns.
  2. Step 2: Compare options with definition

    Only Cuts out a part of the image using row and column ranges describes cutting out part of the image using row and column ranges.
  3. Final Answer:

    Cuts out a part of the image using row and column ranges -> Option C
  4. Quick Check:

    Cropping = cutting part of image [OK]
Hint: Cropping means cutting out part of the image [OK]
Common Mistakes:
  • Confusing cropping with resizing
  • Thinking cropping changes colors
  • Mixing cropping with rotation
2. Which of the following is the correct syntax to crop an image stored in variable img to rows 10 to 50 and columns 20 to 70 in Python?
easy
A. img[10:50, 20:70]
B. img[20:70, 10:50]
C. img[10:50][20:70]
D. img.crop(10,50,20,70)

Solution

  1. Step 1: Recall slicing syntax for images

    Images are sliced as img[row_start:row_end, col_start:col_end].
  2. Step 2: Match given ranges to syntax

    Rows 10 to 50 and columns 20 to 70 means img[10:50, 20:70].
  3. Final Answer:

    img[10:50, 20:70] -> Option A
  4. Quick Check:

    Rows first, columns second in slicing [OK]
Hint: Remember slicing is img[row_start:row_end, col_start:col_end] [OK]
Common Mistakes:
  • Swapping row and column indices
  • Using double brackets instead of comma
  • Using a non-existent crop method
3. Given the code:
import numpy as np
img = np.arange(100).reshape(10,10)
cropped = img[2:5, 3:7]
print(cropped)

What is the output?
medium
A. [[3 4 5 6] [13 14 15 16] [23 24 25 26]]
B. [[23 24 25 26] [33 34 35 36] [43 44 45 46]]
C. [[23 24 25 26 27] [33 34 35 36 37] [43 44 45 46 47]]
D. [[32 33 34 35] [42 43 44 45] [52 53 54 55]]

Solution

  1. Step 1: Understand the image array

    img is a 10x10 array with values from 0 to 99 arranged row-wise.
  2. Step 2: Extract rows 2 to 4 and columns 3 to 6

    Rows 2,3,4 correspond to indices 2,3,4; columns 3,4,5,6 correspond to indices 3 to 6 exclusive of 7.
  3. Step 3: Identify values in cropped

    Row 2: values 20 to 29, columns 3 to 6 are 23,24,25,26
    Row 3: 33,34,35,36
    Row 4: 43,44,45,46
  4. Final Answer:

    [[23 24 25 26] [33 34 35 36] [43 44 45 46]] -> Option B
  5. Quick Check:

    Slice rows 2-5 and cols 3-7 gives these values [OK]
Hint: Check array shape and slicing ranges carefully [OK]
Common Mistakes:
  • Confusing row and column indices
  • Including end index in slice
  • Misreading array reshape order
4. You try to crop an image using cropped = img[50:100, 30:60] but get an IndexError. What is the likely cause?
medium
A. The image variable is not defined
B. The slicing syntax is incorrect
C. The image is grayscale, not color
D. The image has fewer than 100 rows

Solution

  1. Step 1: Understand IndexError cause

    IndexError occurs when slicing beyond array dimensions.
  2. Step 2: Analyze slicing indices

    Rows 50 to 100 means accessing rows starting at 50. If image has fewer rows, this causes error.
  3. Final Answer:

    The image has fewer than 100 rows -> Option D
  4. Quick Check:

    IndexError = slicing outside image size [OK]
Hint: Check image shape before slicing [OK]
Common Mistakes:
  • Assuming syntax error causes IndexError
  • Confusing color channels with rows
  • Not checking if variable is defined
5. You have a 200x200 image and want to crop a centered square of size 100x100. Which code correctly crops this center square?
hard
A. img[50:150, 50:150]
B. img[0:100, 0:100]
C. img[100:200, 100:200]
D. img[25:125, 25:125]

Solution

  1. Step 1: Calculate center start and end indices

    Center of 200x200 is at 100,100. Half of 100 size is 50.
  2. Step 2: Determine crop range

    Start at 100-50=50, end at 100+50=150 for both rows and columns.
  3. Final Answer:

    img[50:150, 50:150] -> Option A
  4. Quick Check:

    Center crop = middle 100 pixels from 200 [OK]
Hint: Center crop start = center - half size [OK]
Common Mistakes:
  • Starting crop at 0 instead of center
  • Using wrong indices for center
  • Cropping smaller or larger than requested