OpenCV Tutorial
Image Processing
Feature Detection and Description
Drawing Functions
Video Processing
Applications and Projects
Drawing an arrow segment in OpenCV can be accomplished using the arrowedLine()
function. The function allows you to define the starting and ending points of the arrow, its color, thickness, and other properties.
Let's go through a simple tutorial on how to draw an arrow segment on an image using OpenCV.
First, ensure OpenCV is installed:
pip install opencv-python
Import necessary libraries:
import cv2 import numpy as np
For this tutorial, we'll create a blank image, but you can also load your own:
# Create a blank image (white background) image = np.ones((500, 500, 3), np.uint8) * 255
Or load an existing image:
# image = cv2.imread('path_to_image.jpg')
You can use cv2.arrowedLine()
to draw an arrow. Here's the basic syntax:
cv2.arrowedLine(img, start_point, end_point, color[, thickness[, line_type[, shift[, tipLength]]]])
img
: The image on which the arrow is drawn.start_point
: The starting point of the arrow segment.end_point
: The ending point (tip) of the arrow.color
: Arrow color.thickness
(optional): Line thickness.line_type
(optional): Line type (like 8-connected, anti-aliased line etc.)shift
(optional): Number of fractional bits in the point coordinates.tipLength
(optional): The length of the arrow tip in relation to the arrow length.Here's an example:
start_point = (50, 250) end_point = (450, 250) color = (0, 0, 255) # Red color in BGR thickness = 2 tip_length = 0.2 # 20% of the arrow length cv2.arrowedLine(image, start_point, end_point, color, thickness, tipLength=tip_length)
cv2.imshow('Arrow Segment', image) cv2.waitKey(0) cv2.destroyAllWindows()
When you run the code, you'll see a blank window with a red arrow drawn across its width. You can adjust the starting and ending points, color, thickness, and tip length as needed.
That's it! Using the arrowedLine()
function, you can quickly draw arrows on images in OpenCV, making it useful for annotating images, especially in computer vision tasks where you might want to indicate direction or movement.
Drawing Arrow Segments in OpenCV:
import cv2 import numpy as np # Create a black image img = np.zeros((300, 400, 3), dtype=np.uint8) # Define arrow starting and ending points start_point = (50, 150) end_point = (350, 150) # Draw arrow segment on the image cv2.arrowedLine(img, start_point, end_point, (0, 255, 0), 2) # Display the image cv2.imshow('Arrow Segment', img) cv2.waitKey(0) cv2.destroyAllWindows()