OpenCV-Python is a library of Python bindings designed to solve computer vision problems. Let’s see how to Connect a new point to the previous point on an image with a straight line.
Step 1: Draw points on image:
On a image we can mark points using cv2.circle( ) method. This method is used to draw a circle on any image.
Syntax: cv2.circle(image, center_coordinates, radius, color, thickness)
Parameters: This method will take the following parameters:
- image: It is the image on which circle is to be drawn.
- center_coordinates: It is the center coordinates of the circle. The coordinates are represented as tuples of two values i.e. (X coordinate value, Y coordinate value).
- radius: It is the radius of the circle.
- color: It is the color of the borderline of the circle to be drawn. For BGR, we pass a tuple. eg: (255, 0, 0) for blue color.
- thickness: It is the thickness of the circle borderline in px. The thickness of -1 px will fill the rectangle shape by the specified color.
Return: It returns an image with a circle drawn on it.
Step 2: Joining two points through a straight line:
We can join two points on an image using the cv2.line() method. This method is used to draw a line on any image.
Syntax: cv2.circle(image, center_coordinates, radius, color, thickness)
Parameters: This method will take the following parameters:
- image: It is the image on which circle is to be drawn.
- center_coordinates: It is the center coordinates of the circle. The coordinates are represented as tuples of two values i.e. (X coordinate value, Y coordinate value).
- radius: It is the radius of the circle.
- color: It is the color of the borderline of the circle to be drawn. For BGR, we pass a tuple. eg: (255, 0, 0) for blue color.
- thickness: It is the thickness of the circle borderline in px. The thickness of -1 px will fill the rectangle shape by the specified color.
Return Value: It returns an image with a line drawn on it.
Below is the implementation:
Python3
# importing required packages import cv2 import numpy as np # mouse call back function def click_event(event, x, y, flags, params): # if the left button of mouse # is clicked then this # condition executes if event = = cv2.EVENT_LBUTTONDOWN: # appending the points we # clicked to list points.append((x,y)) # marking the point with a circle # of center at that point and # small radius cv2.circle(img,(x,y), 4 , ( 0 , 255 , 0 ), - 1 ) # if length of points list # greater than2 then this # condition executes if len (points) > = 2 : # joins the current point and # the previous point in the # list with a line cv2.line(img, points[ - 1 ], points[ - 2 ], ( 0 , 255 , 255 ), 5 ) # displays the image cv2.imshow( 'image' , img) # making an black image # of size (512,512,3) # create 3-d numpy # zeros array img = np.zeros(( 512 , 512 , 3 ), np.uint8) # decalre a list to append all the # points on the image we clicked points = [] # show the image cv2.imshow( 'image' ,img) # setting mouse call back cv2.setMouseCallback( 'image' , click_event) # no waiting cv2.waitKey( 0 ) # To close the image # window that we opened cv2.destroyAllWindows() |
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.