Adventures in Machine Learning

Efficiently Extract Relevant Portions with Python Image Cropping

Image Cropping in Python: A Comprehensive Guide

Image cropping is a fundamental task in various fields, ranging from photography to computer vision. Cropping an image allows you to extract relevant portions and discard the rest, making it easier to focus on specific details. Whether you’re working on a personal project or a professional one, cropping an image can help make your workflow more efficient.

In this article, we’ll explore two popular Python libraries, Python Imaging Library (PIL) and OpenCV, and how to crop images using them.

Using Python PIL to Crop an Image

Python Imaging Library, also known as PIL, is a popular Python library used to manipulate images. It provides various functions to interact with images, such as loading, saving, and cropping.

The library can be installed using pip, a Python package manager. To crop an image using PIL, you will need to use the crop() function.

The crop() function accepts a tuple representing the coordinates of the crop area. The tuple contains four integers in this order: left, upper, right, and lower.

The left and upper coordinates represent the top-left corner of the crop area, while the right and lower coordinates represent the bottom-right corner of the crop area.

Image.crop() Function

Let’s take a look at how to use the crop() function in PIL.

First, we load an image using the open() function from the Image module. Then, we use the crop() function to extract a portion of the image.

from PIL import Image
image = Image.open('image.jpg')
crop_area = (0, 0, 100, 100)
cropped_image = image.crop(crop_area)
cropped_image.show()

In the code above, we load an image called ‘image.jpg’. Then, we define the crop area tuple containing coordinates (0, 0, 100, 100), representing a 100×100 pixel area in the top-left corner of the image.

Finally, we apply the crop() function to the original image and display the cropped image using the show() function.

Example Code and Output

The cropped image is displayed on a separate window, as shown below.

Cropped Image

Using OpenCV to Crop an Image in Python

OpenCV, short for Open Source Computer Vision Library, is another popular Python library used to manipulate images. OpenCV primarily focuses on computer vision tasks such as face detection and object recognition.

It provides a range of functions to interact with images, such as loading, saving, and cropping. To crop an image using OpenCV, you will need to use slicing.

Slicing in OpenCV is similar to slicing in NumPy. You can slice an image using the start and end coordinates of the crop area.

Slicing an Image in OpenCV

Let’s take a look at an example of cropping an image using OpenCV. First, we use the imread() function from the cv2 module to load an image into memory.

Next, we slice the image using the start and end coordinates and store the result in a variable. Finally, we use functions from cv2 to display the original image and the cropped version.

import cv2
image = cv2.imread('image.jpg')
crop_area = image[0:100, 0:100]
cv2.imshow('Original Image', image)
cv2.imshow('Cropped Image', crop_area)
cv2.waitKey(0)

In the code above, we use imread() to load an image called ‘image.jpg.’ Then, we slice the image using the start and end coordinates (0, 0) and (100, 100), respectively. Notice how we use a NumPy-like slicing syntax in the second line of code.

Finally, we use imshow() from the cv2 module to display the original image and the cropped version side by side.

Example Code and Output

The output of the code above shows the original image on the left and the cropped image on the right.

Original and Cropped Image

Conclusion

Image cropping is a fundamental task in various fields, ranging from photography to computer vision. In this article, we explored two popular Python libraries, Python Imaging Library (PIL) and OpenCV, and how to crop images using them.

While PIL uses the crop() function to extract a portion of an image, OpenCV uses slicing to define the crop area. Both libraries offer an array of functions for manipulating images, making it easier to extract only the relevant portions in your project.

In this article, we discussed the importance of image cropping and how to crop an image using two popular Python libraries, PIL and OpenCV. PIL provides a crop() function that extracts a portion of an image, while OpenCV uses slicing to define the crop area.

Both libraries contain an array of functions for manipulating images, making it easier to extract only the relevant portions in your project. As an essential task in various fields, including photography and computer vision, image cropping can help make your workflow more efficient and improve the final product’s quality.

Popular Posts