📜  OPENCV GET CONTOURS - Python (1)

📅  最后修改于: 2023-12-03 15:33:17.800000             🧑  作者: Mango

OPENCV GET CONTOURS - Python

OPENCV is a popular library for image processing that can be used in Python. One of the important functions of this library is to extract the contours from an image. Contours are curves that form the boundary of an object in an image. Extracting contours is often the first step in image analysis and computer vision applications.

Installation

Before we dive in, ensure that OpenCV is installed in your system and is accessible from Python. Use the following command to install OpenCV using pip:

pip install opencv-python
Loading and Displaying an Image

The first step is to load an image and display it using OpenCV. Use the following code snippet to load the image and display it:

import cv2

# Load the image in grayscale mode
img = cv2.imread('image.jpg', 0)

# Display the image
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

The cv2.imread function is used to load the image. The second parameter of this function specifies whether to load the image in color or grayscale mode. In this example, we use the grayscale mode. The cv2.imshow function is used to display the image. The first parameter specifies the title of the window in which the image is displayed. The second parameter is the image that needs to be displayed. Finally, use cv2.waitKey(0) to wait until a key is pressed. Use cv2.destroyAllWindows() to close all the windows.

Extracting Contours

Now, let's extract contours from the loaded image. Use the following code snippet to extract the contours:

import cv2

# Load the image in grayscale mode
img = cv2.imread('image.jpg', 0)

# Threshold the image
ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)

# Find the contours
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

# Draw the contours on the image
img = cv2.drawContours(img, contours, -1, (0, 255, 0), 3)

# Display the image
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

In this code snippet, the cv2.threshold function is used to threshold the image. Thresholding is the process of converting a grayscale image to a binary image. In this example, any pixel with a value greater than 127 is set to 255 (white), and any pixel with a value less than or equal to 127 is set to 0 (black). The second returned parameter is the thresholded image.

Next, use the cv2.findContours function to extract the contours from the thresholded image. The first returned parameter is a list of contours. The second returned parameter is the hierarchy of the contours.

Finally, use the cv2.drawContours function to draw the contours on the original image. The first parameter is the original image. The second parameter is the list of contours. The third parameter is the index of the contour to draw (-1 to draw all contours). The fourth parameter is the color of the contour. The fifth parameter is the thickness of the contour.

Conclusion

In this tutorial, we learned how to extract contours from an image using OpenCV in Python. We loaded an image, thresholded it, extracted the contours, and drew them on the original image. OpenCV provides many more functions for image processing and computer vision applications.