Writing Your First OpenCV Program

Crafting Your First OpenCV Program in Python: A Beginner’s Journey into the World of Computer Vision

Updated March 18, 2023

Today’s sponsor is Depot. Depot is a remote container build service that’s half the cost of GitHub Actions runners and up to 40x faster than other build services. Try it for free.

Welcome, fellow coders! Today, we’re embarking on an exciting journey into the realm of computer vision, where we’ll learn to make our computers “see” and understand the visual world. We’ll be using the powerful OpenCV library in Python, and by the end of this tutorial, you’ll have a solid understanding of the basics and be able to create your first OpenCV program. So, let’s dive right in!

What is Computer Vision?

Computer vision is the science that aims to teach computers how to interpret and understand the visual world. By processing digital images and videos, computers can identify objects, track movement, and even recognize patterns. This fascinating field has a wide range of applications, from robotics and self-driving cars to facial recognition and augmented reality. Want to learn more? Check out the Wikipedia page on computer vision.

Why OpenCV and Python?

OpenCV (Open Source Computer Vision Library) is an open-source computer vision and machine learning software library. It contains more than 2,500 optimized algorithms for real-time computer vision. OpenCV is highly efficient and widely used in academia and industry.

Python is a versatile, user-friendly programming language that’s great for beginners and experts alike. Pairing OpenCV with Python creates a powerful combination that makes computer vision more accessible to everyone.

How to Set Up Your Environment in OpenCV

Before we start writing code, we need to install Python and OpenCV. You can download Python from the official Python website. Once you’ve got Python installed, you can install OpenCV using pip by running this command:

pip install opencv-python

Now that our environment is ready, we can start writing our first OpenCV program!

Reading and Displaying an Image

The first thing we’ll learn is how to read and display an image using OpenCV. This is the foundation of many computer vision tasks.

Here’s the code to read and display an image:

import cv2
# Read the image
image = cv2.imread('path/to/your/image.jpg')

# Display the image
cv2.imshow('My Image', image)

# Wait for a key press and close the window

Let’s break it down:

  1. We import the OpenCV library using the alias cv2.
  2. We read the image using cv2.imread(). Replace path/to/your/image.jpg with the actual path to your image file.
  3. We display the image in a window with the title My Image using cv2.imshow().
  4. We wait for a key press using cv2.waitKey(0). This pauses the program until you press any key.
  5. Finally, we close the window using cv2.destroyAllWindows().

Congratulations! You’ve just written your first OpenCV program in Python.

Converting an Image to Grayscale

Grayscale images are often used in computer vision because they’re simpler to process than color images. Let’s learn how to convert an image to grayscale using OpenCV.

import cv2

# Read the image
image = cv2.imread('path/to/your/image.jpg')

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

# Display the grayscale image
cv2.imshow('Grayscale Image', gray_image)

# Wait for a key press and close the window

In this code, we use cv2.cvtColor() to convert the image to grayscale. This function takes two arguments: the source image and the color conversion code. We use cv2.COLOR_BGR2GRAY as the conversion code, which tells OpenCV to convert the image from the default Blue-Green-Red (BGR) format to grayscale.

After converting the image, we display it using cv2.imshow() with the title ‘Grayscale Image’. The rest of the code is the same as before: waiting for a key press and closing the window.

Drawing on an Image Drawing shapes on an image can be useful for various tasks, such as highlighting detected objects or creating overlays. Let’s learn how to draw a rectangle and some text on an image using OpenCV.

import cv2

# Read the image
image = cv2.imread('path/to/your/image.jpg')

# Draw a rectangle on the image
cv2.rectangle(image, (50, 50), (200, 200), (0, 255, 0), 3)

# Draw some text on the image
cv2.putText(image, 'Hello, OpenCV!', (50, 250), font, 1, (0, 0, 255), 2, cv2.LINE_AA)

# Display the modified image
cv2.imshow('Modified Image', image)

# Wait for a key press and close the window

In this example, we draw a green rectangle and red text on the image. The cv2.rectangle() function takes five arguments: the image, the top-left corner coordinates, the bottom-right corner coordinates, the color (in BGR format), and the thickness of the rectangle’s border. The cv2.putText() function takes eight arguments: the image, the text, the bottom-left corner coordinates of the text, the font, the font scale, the color (in BGR format), the thickness of the text, and the type of line used.

Wrapping Up

Great job! You’ve learned the basics of computer vision using OpenCV and Python, including reading and displaying images, converting images to grayscale, and drawing on images. You’re now ready to explore more advanced topics and build your own computer vision projects.

Remember that learning is a journey, and practice makes perfect. Keep experimenting with OpenCV and applying your newfound knowledge to various projects. The world of computer vision is vast, and you’re just getting started. Happy coding!