Connect new point to the previous point on a image with a straight line in Opencv-Python

31 Aug, 2021
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 packagesimport cv2import numpy as np # mouse call back functiondef 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 arrayimg = np.zeros((512, 512, 3),             np.uint8) # declare a list to append all the# points on the image we clickedpoints = [] # show the imagecv2.imshow('image',img) # setting mouse call backcv2.setMouseCallback('image',                     click_event) # no waitingcv2.waitKey(0) # To close the image# window that we openedcv2.destroyAllWindows()
singghakshay
Python-OpenCV
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.